1.1.0 release
This commit is contained in:
		
							parent
							
								
									d77733d29f
								
							
						
					
					
						commit
						98167a9d93
					
				
					 2 changed files with 140 additions and 0 deletions
				
			
		
							
								
								
									
										15
									
								
								cpu.hpp
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								cpu.hpp
									
										
									
									
									
								
							|  | @ -15,6 +15,9 @@ You should have received a copy of the GNU General Public License along with thi | ||||||
| #include <fstream> | #include <fstream> | ||||||
| #include <cstdlib> | #include <cstdlib> | ||||||
| #include <cstdint> | #include <cstdint> | ||||||
|  | #include <chrono> | ||||||
|  | #include <thread> | ||||||
|  | #include "tpu.hpp" | ||||||
| 
 | 
 | ||||||
| using namespace std; | using namespace std; | ||||||
| 
 | 
 | ||||||
|  | @ -61,10 +64,22 @@ void cpuInstructions ( uint8_t *rom ) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void cpuEmulation ( uint8_t *rom ) { | void cpuEmulation ( uint8_t *rom ) { | ||||||
|  |     const int targetFPS = 20; | ||||||
|  |     const int frameDuration = 1000 / targetFPS; | ||||||
|     *pointer = 0; |     *pointer = 0; | ||||||
| 
 | 
 | ||||||
|     while ( true ) { |     while ( true ) { | ||||||
|  |         auto start = chrono::high_resolution_clock::now(); | ||||||
|  | 
 | ||||||
|         cpuInstructions ( rom ); |         cpuInstructions ( rom ); | ||||||
|  |         textProcessing ( registers[7] ); | ||||||
|  | 
 | ||||||
|  |         auto end = chrono::high_resolution_clock::now(); | ||||||
|  |         chrono::duration<double, milli> elapsed = end - start; | ||||||
|  | 
 | ||||||
|  |         if ( elapsed.count() < frameDuration ) { | ||||||
|  |             this_thread::sleep_for ( chrono::milliseconds ( frameDuration ) - elapsed ); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										125
									
								
								tpu.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								tpu.hpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,125 @@ | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include <iostream> | ||||||
|  | #include <cstdlib> | ||||||
|  | #include <cstdint> | ||||||
|  | 
 | ||||||
|  | using namespace std; | ||||||
|  | 
 | ||||||
|  | void textProcessing ( uint8_t ch ) { | ||||||
|  |     switch ( ch ) { | ||||||
|  |     case 0x01: | ||||||
|  |         cout << "0"; | ||||||
|  |         break; | ||||||
|  |     case 0x02: | ||||||
|  |         cout << "1"; | ||||||
|  |         break; | ||||||
|  |     case 0x03: | ||||||
|  |         cout << "2"; | ||||||
|  |         break; | ||||||
|  |     case 0x04: | ||||||
|  |         cout << "3"; | ||||||
|  |         break; | ||||||
|  |     case 0x05: | ||||||
|  |         cout << "4"; | ||||||
|  |         break; | ||||||
|  |     case 0x06: | ||||||
|  |         cout << "5"; | ||||||
|  |         break; | ||||||
|  |     case 0x07: | ||||||
|  |         cout << "6"; | ||||||
|  |         break; | ||||||
|  |     case 0x08: | ||||||
|  |         cout << "7"; | ||||||
|  |         break; | ||||||
|  |     case 0x09: | ||||||
|  |         cout << "8"; | ||||||
|  |         break; | ||||||
|  |     case 0x0A: | ||||||
|  |         cout << "9"; | ||||||
|  |         break; | ||||||
|  |     case 0x0B: | ||||||
|  |         cout << "A"; | ||||||
|  |         break; | ||||||
|  |     case 0x0C: | ||||||
|  |         cout << "B"; | ||||||
|  |         break; | ||||||
|  |     case 0x0D: | ||||||
|  |         cout << "C"; | ||||||
|  |         break; | ||||||
|  |     case 0x0E: | ||||||
|  |         cout << "D"; | ||||||
|  |         break; | ||||||
|  |     case 0x0F: | ||||||
|  |         cout << "E"; | ||||||
|  |         break; | ||||||
|  |     case 0x10: | ||||||
|  |         cout << "F"; | ||||||
|  |         break; | ||||||
|  |     case 0x11: | ||||||
|  |         cout << "G"; | ||||||
|  |         break; | ||||||
|  |     case 0x12: | ||||||
|  |         cout << "H"; | ||||||
|  |         break; | ||||||
|  |     case 0x13: | ||||||
|  |         cout << "I"; | ||||||
|  |         break; | ||||||
|  |     case 0x14: | ||||||
|  |         cout << "J"; | ||||||
|  |         break; | ||||||
|  |     case 0x15: | ||||||
|  |         cout << "K"; | ||||||
|  |         break; | ||||||
|  |     case 0x16: | ||||||
|  |         cout << "L"; | ||||||
|  |         break; | ||||||
|  |     case 0x17: | ||||||
|  |         cout << "M"; | ||||||
|  |         break; | ||||||
|  |     case 0x18: | ||||||
|  |         cout << "N"; | ||||||
|  |         break; | ||||||
|  |     case 0x19: | ||||||
|  |         cout << "O"; | ||||||
|  |         break; | ||||||
|  |     case 0x1A: | ||||||
|  |         cout << "P"; | ||||||
|  |         break; | ||||||
|  |     case 0x1B: | ||||||
|  |         cout << "Q"; | ||||||
|  |         break; | ||||||
|  |     case 0x1C: | ||||||
|  |         cout << "R"; | ||||||
|  |         break; | ||||||
|  |     case 0x1D: | ||||||
|  |         cout << "S"; | ||||||
|  |         break; | ||||||
|  |     case 0x1E: | ||||||
|  |         cout << "T"; | ||||||
|  |         break; | ||||||
|  |     case 0x1F: | ||||||
|  |         cout << "U"; | ||||||
|  |         break; | ||||||
|  |     case 0x20: | ||||||
|  |         cout << "V"; | ||||||
|  |         break; | ||||||
|  |     case 0x21: | ||||||
|  |         cout << "W"; | ||||||
|  |         break; | ||||||
|  |     case 0x22: | ||||||
|  |         cout << "X"; | ||||||
|  |         break; | ||||||
|  |     case 0x23: | ||||||
|  |         cout << "Y"; | ||||||
|  |         break; | ||||||
|  |     case 0x24: | ||||||
|  |         cout << "Z"; | ||||||
|  |         break; | ||||||
|  |     case 0x25: | ||||||
|  |         cout << endl; | ||||||
|  |         break; | ||||||
|  |     default: | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in a new issue
	
	 patrick_pluto
						patrick_pluto