🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

detecting (hardware) resources

Started by
33 comments, last by Calin 4 years, 4 months ago

Calin said:
like If could get by by not using Linux or Windows, I would do it.

You may want to look at smaller systems, like Raspberry Pi or Arduino. Even further away from main=stream, electronics shops sell various SBCs (single board computers). All these systems are much more hardware/electronics oriented, so the OS is less of an hurdle. At the down-side, these systems may also don't have a fully fledged dev environment.

Advertisement

Alberth said:
fully fledged dev environment

Standard ASM applies?

My project`s facebook page is “DreamLand Page”

what`s the difference between registers and memory. Also PC memory is made of different levels of memory, fast CPU memory, RAM etc. Do you get to pick the type of memory you want to work with or you`re assigned automatically with a chunk of memory for your needs.

I will be happy with key words that I can look up, no need to go at length with me

My project`s facebook page is “DreamLand Page”

Anyone interested in how a computer works from every level from analogue electronics to writing high level programming languages, then you may want to watch the crash course computer science on youtube. Lesson 6 talks about ram and registers. Later it goes into assembly programming.

https://www.youtube.com/watch?v=tpIctyqH29Q&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo

As for writing games in assembly, it can be fun and a good learning experience... but not on a modern PC and OS. Why not learn to game program in assembly on some simpler hardware (or older). I recommend running an old 1980’s home computer under an emulator and learn to assembly game program that way. Why? Because games were written in assembly then! You can gain a lot of understanding on how to read/write directly to video memory , IO ports, setting up interrupts etc and generally programming in assembly.

Calin said:
I will be happy with key words that I can look up, no need to go at length with me


Intel PDF Manuals: Ctrl+F: “cache”
Google: “Real mode addressing”
Google: “Page Tables Memory”

https://wiki.osdev.org/Paging
https://wiki.osdev.org/Real_Mode
https://wiki.osdev.org/Protected_Mode
https://wiki.osdev.org/Long_Mode

desiado said:
but not on a modern PC and OS

is that what`s written in the stars?

My project`s facebook page is “DreamLand Page”

NikiTo said:
cache

Is there an abstractization of memory such that the switch of data between fast/slow levels of memory is made behind the curtain and you only deal with a unique memory addressing interface?

My project`s facebook page is “DreamLand Page”

If you don't do it yourself, the OS will do it for you.
If there is not an OS, and you don't do it yourself, default values will be loaded.

This is ASM about - lot of work. Lot of control, but control involves lot of extra work.

(Notice, OS is putting your code inside a box. So ASM is not so powerful under an OS as on the bare metal. OS limits your code a lot. For good or for bad. You can not break through the sandbox of the OS by using ASM. ASM or not, the OS will limit it as if it were C/C++)
(A typical case on windows- a process is constantly 24/7 taking a whole core of your CPU and suffocating the disk. Regardless you coded it in C or ASM, your program will run slower because of that process.)

NikiTo said:
control involves lot of extra work

If it were for your life to depend on it you come up with work arrounds

My project`s facebook page is “DreamLand Page”

So the OS is using Bios to load itself into memory after which it takes over. The Bios is pretty much the `host` until the OS is matured (loaded into memory and fully in control)

My project`s facebook page is “DreamLand Page”

This topic is closed to new replies.

Advertisement