mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Improved yosys.js example
This commit is contained in:
		
							parent
							
								
									4d34d031f9
								
							
						
					
					
						commit
						c2cc342e1a
					
				
					 1 changed files with 72 additions and 60 deletions
				
			
		
							
								
								
									
										132
									
								
								misc/yosys.html
									
										
									
									
									
								
							
							
						
						
									
										132
									
								
								misc/yosys.html
									
										
									
									
									
								
							|  | @ -1,60 +1,72 @@ | |||
| <html> | ||||
|   <head> | ||||
|     <title>yosys.js example application</title> | ||||
|   </head> | ||||
|   <body onload="document.getElementById('command').focus()"> | ||||
|     <h1>yosys.js example application</h1> | ||||
|     <div><textarea id="output" style="width: 100%" rows="30" cols="100">Loading...</textarea></div> | ||||
|     <div><form onsubmit="return run_command()"><tt><span id="prompt"><br/>yosys> </span></tt><input id="command" type="text" size="100"></form></div> | ||||
|     <script type='text/javascript'> | ||||
|       var got_log_messages = false; | ||||
|       var Module = { | ||||
|         print: (function() { | ||||
|           var element = document.getElementById('output'); | ||||
|           if (element) element.value = ''; // clear browser cache | ||||
|           return function(text) { | ||||
| 	    got_log_messages = true; | ||||
|             if (element && typeof(text) != "number") { | ||||
|               element.value += text + "\n"; | ||||
|               element.scrollTop = element.scrollHeight; // focus on bottom | ||||
|             } | ||||
|           }; | ||||
| 	})(), | ||||
|         printErr: (function() { | ||||
|           var element = document.getElementById('output'); | ||||
|           if (element) element.value = ''; // clear browser cache | ||||
|           return function(text) { | ||||
|             if (element && typeof(text) != "number") { | ||||
| 	      console.log(text); | ||||
| 	      if (got_log_messages) { | ||||
|                 element.value += text + "\n"; | ||||
|                 element.scrollTop = element.scrollHeight; // focus on bottom | ||||
| 	      } | ||||
|             } | ||||
|           }; | ||||
| 	})(), | ||||
| 	command: (function(cmd) { | ||||
| 	  Module.ccall('run', '', ['string'], [cmd]) | ||||
| 	}), | ||||
| 	prompt: (function(cmd) { | ||||
| 	  return Module.ccall('prompt', 'string', [], []) | ||||
| 	}) | ||||
|       }; | ||||
|       function run_command() { | ||||
|         var cmd = document.getElementById('command').value; | ||||
| 	document.getElementById('command').value = ''; | ||||
|         Module.print(Module.prompt() + cmd); | ||||
| 	try { | ||||
| 		Module.command(cmd); | ||||
| 	} catch (e) { | ||||
| 		Module.print('Caught JavaScript exception. (see JavaScript console for details.)'); | ||||
| 		console.log(e); | ||||
| 	} | ||||
| 	document.getElementById('command').focus(); | ||||
| 	document.getElementById('prompt').innerText = Module.prompt(); | ||||
| 	return false; | ||||
|       } | ||||
|     </script> | ||||
|     <script async type="text/javascript" src="yosys.js"></script> | ||||
|   </body> | ||||
| </html> | ||||
| <html><head> | ||||
| 	<title>yosys.js example application</title> | ||||
| </head><body onload="document.getElementById('command').focus()"> | ||||
| 	<h1>yosys.js example application</h1> | ||||
| 	<div><textarea id="output" style="width: 100%" rows="30" cols="100"></textarea></div> | ||||
| 	<div id="wait" style="display: block"><br/><b><span id="waitmsg">Loading...</span></b></div> | ||||
| 	<div id="input" style="display: none"><form onsubmit="return run_command()"><tt><span id="prompt"><br/>yosys> </span></tt><input id="command" type="text" size="100"></form></div> | ||||
| 	<script type='text/javascript'> | ||||
| 		var got_log_messages = false; | ||||
| 		var Module = { | ||||
| 			print: (function() { | ||||
| 				var element = document.getElementById('output'); | ||||
| 				if (element) element.value = ''; // clear browser cache | ||||
| 				return function(text) { | ||||
| 					if (!got_log_messages) { | ||||
| 						document.getElementById('wait').style.display = 'none'; | ||||
| 						document.getElementById('input').style.display = 'block'; | ||||
| 						document.getElementById('waitmsg').innerText = 'Waiting for yosys.js...'; | ||||
| 						got_log_messages = true; | ||||
| 					} | ||||
| 					if (element && typeof(text) != "number") { | ||||
| 						element.value += text + "\n"; | ||||
| 						element.scrollTop = element.scrollHeight; // focus on bottom | ||||
| 					} | ||||
| 				}; | ||||
| 			})(), | ||||
| 			printErr: (function() { | ||||
| 				var element = document.getElementById('output'); | ||||
| 				if (element) element.value = ''; // clear browser cache | ||||
| 				return function(text) { | ||||
| 					if (element && typeof(text) != "number") { | ||||
| 						console.log(text); | ||||
| 						if (got_log_messages) { | ||||
| 							element.value += text + "\n"; | ||||
| 							element.scrollTop = element.scrollHeight; // focus on bottom | ||||
| 						} | ||||
| 					} | ||||
| 				}; | ||||
| 			})(), | ||||
| 			command: (function(cmd) { | ||||
| 				Module.ccall('run', '', ['string'], [cmd]) | ||||
| 			}), | ||||
| 			prompt: (function(cmd) { | ||||
| 				return Module.ccall('prompt', 'string', [], []) | ||||
| 			}) | ||||
| 		}; | ||||
| 		function run_command() { | ||||
| 			var cmd = document.getElementById('command').value; | ||||
| 			document.getElementById('command').value = ''; | ||||
| 			Module.print(Module.prompt() + cmd); | ||||
| 			document.getElementById('wait').style.display = 'block'; | ||||
| 			document.getElementById('input').style.display = 'none'; | ||||
| 
 | ||||
| 			function run_command_bh() { | ||||
| 				try { | ||||
| 					Module.command(cmd); | ||||
| 				} catch (e) { | ||||
| 					Module.print('Caught JavaScript exception. (see JavaScript console for details.)'); | ||||
| 					console.log(e); | ||||
| 				} | ||||
| 				document.getElementById('wait').style.display = 'none'; | ||||
| 				document.getElementById('input').style.display = 'block'; | ||||
| 				document.getElementById('prompt').innerText = Module.prompt(); | ||||
| 				document.getElementById('command').focus(); | ||||
| 			} | ||||
| 
 | ||||
| 			window.setTimeout(run_command_bh, 50); | ||||
| 			return false; | ||||
| 		} | ||||
| 	</script> | ||||
| 	<script async type="text/javascript" src="yosys.js"></script> | ||||
| </body></html> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue