Overview
- The goal of this project is to create a emulation software for Video Card
Planning
Goal of the project
The ultimate goal of this project is being able to emulate the video card from scratch (from creation of pulse generator to displaying the image file)
Basic Logic inside the Loop
- Create threads for all tasks that has to happen when each clock pulse is generated
- Run pulse generator on main thread
- Assign tasks to the threads
- Wait for all threads to finish
Programming
Day 1
Source Code Written on July 14th, 2020 on MacBook Pro 13” 2019, macOS 10.15.5 using Xcode
Day 2
This Code is made to study Multithreading in C language using pthread header.
Source Code Written on July 16th, 2020 on MacBook Pro 13” 2019, macOS 10.15.6 using Xcode
Problems, Bugs and Errors
Identifier
10MHz Pulse Generator
Problem ID: 2020071501
For this project, 10MHz pulse generator is needed for setting the correct timing of display rate. However, 10MHz Generator that I built has small delays. Since each pulse has to be generated by every 100 nano second, small delays are reasonable sources of potential problems.
Ideas to resolve problems
10MHz Pulse Generator
Problem ID: 2020071501
One possible solution for 10MHz P.G. problem is using multi-thread processing. Multi-thread processing is the method that allows multiple processes to run on the same time. By using this, We can process multiple tasks for each pulse much faster and efficiently.
Resources
Written Resources
- Main Resource 01
- Main Resource 02
- Explained
- Multi Threading using WinAPI
Video Resources
- >Part 1
- >Part 2