I've no idea how to ask, so please go easy...
RIGHT. SO I just had a huge post here. Huge huge huge. Full of stuff i'd be ashamed of in the morning, like all the 'pleading'... I also mentioned that I had NOT had a look at the Pandora's Linux kernel, because I saw license issues. But, i've decided i'm doing that anyway. Aside from that...
A much revised, but less 'warm' and more rash version is, in lolcat for comic relief:
"Can haz operating system on Pandora tutorial?"
I'm NOT asking for "This is called a computer. This is called a monitor."
or "This is a variable. This is a function"
or even "This is how pointers work"
No. I know how to code. I know how to code pretty damn well. I'm not the best. But i'm not trying to pull a Micro$oft wannabe who decided one day he'd make an OS. I've written games(in SDL). Hell, I have (little, but still enough to get something booted and doing...stuff!) experience writing operating systems on x86.
The text below is borderline bragging and is quite unnessesary and just makes me sound like an asshole. Don't quote it.
Now I want to try the Pandora. I've already ordered a Pandora, i'll be using it mostly with GNU/Linux. But I quite like osdev. Yet I hate x86.
What I wish to know is how to draw on the screen. I'm not a http://wiki.osdev.org/James_T._Klik. Text will do to begin with. (actually, i'm a http://wiki.osdev.org/Lino_Commando. Graphics and GUIs will have to follow because face it, it HURTS to write code for years and have noone care because it's 'not pretty'. http://wiki.osdev.or...anore_Semaphore)
I want to know how to handle interrupts.
I want to know how to use disk.
Why do I want to write an OS?
1. For the sheer sake of it. To say I did. To climb everest, and stick my flag (in the hole where someone else's flag once stood before I just took it out and threw it off the side) on the top.
2. To escape from the rules and laws of any kernel running above you(like most rules/laws, most ARE their for your own protection...others I truly believe are there to piss you off). It feels like you're dreaming and anything is possible(UNTIL you hit a point where it doesn't work, you run out of CPU time, or your hacking without rules has resulted in a mega-bug).
Without an OS you can also write interrupt driven programs/games. Threads don't cut it. Like how in Pokemon (GB, GBA, DS), the tiles are animated? That's because (though I haven't read a disassembly, just speculation) an interrupt connected to a timer (or maybe vblank) fires that will change the pointer to the tile (and then that pointer is used by a hardware tiler. We don't have one of those so we'd have to do the tiling in software.) Without an OS you have zero overhead over YOUR code, so you can truly optimise to the full extent of the hardware. Afterall, compare a (non-pandora) gaming console's specs to a PC game's requirements(erm though you can actually blame Microsoft for part of that)...
SO when it finishes downloading(ETA 1 week, lol...0.86kBps down time. Should speed up later.), I will read the Linux kernel source. I'll gather all I can.
The BEST way to learn anything at all is from a living, breathing guru, NOT some manual, or some lump of code. The next best is example code, designed to teach. Doing things yourself, hands-onis part of both methods.
What I wish for, is that if he/she is some spare time, that some wise and knowledgeable write a barebones "Boot and draw an 'A' in the top left corner of the screen" tutorial. You don't owe anyone anything. But it would be nice for those out there like me. Preferably C oriented. Because, err, personally...I don't really know ARM assembly (I can hear you all inhale sharply and begin to weep in desperation...) but all is not lost, I (personallly) can read it, and understand it, with manual in hand, but not really write it just yet. And again, you really do need someone who knows to get the ball rolling for you.
v More stuff that could be taken the wrong way. v
v AN ALTERNATIVE! v
I'm NOT demanding answers I'm asking. I just wish I knew how to ask more nicely - i'm not trying to sound rude. I jsut really do not know how to word things. I'll need you, please to just pretend i'm using the most silky smooth, velvet honey voice, no matter how the text is interpreted naturally.
Thankyou for taking the time to read this. I hope that you don't hate me for this post. I did STFW. I downloaded the CPU manuals. It's hard to imagine, the several scrapped posts that were never posted were, no exaggerations, close to 10 times larger...I really apologise for going off topic.
EDIT: Well the Pandora kernel finished downloading, and well, I seem to have forgotten that I actually have no idea what so ever to do. Any book recommendations?
Actually any book recommendations at all?
Anything that could be useful for doing osdev on the Pandora.
Not general osdev, that's pretty useless at the moment, you don't write multitasking until you can draw a smiley and prove it's doing something . Otherwise debugging gets VERY hard.
Or, any good fantasy? I could do with a distraction. No Forgotten Realms, i'm reading all of those anyway .
"(puff) Wuut?" --stoner
I think it's about time to go to bed. I started writing this message at 12am(0:00 24h time), it's now 3:30am...
edit2: Anyone know where you can buy a printed copy of the omap35x ref manual? It's huge, so I can't really go down and get it printed anywhere I know, let alone with an inkjet printer - maybe i'll run it off at school without telling anyone (HEY WTF WHY IS THERE NO TONER ANYWHERE?). I hate reading datasheets, manuals, etc on a computer screen. Plus it's much MUCH more bearable to sit down comfortably on the couch before you strain your eyes and pain your brain.
edit3: Argh, well it seems emulation is pretty pointless for the Pandora (can emulate arm, not it's hardware - naturally) - so I won't be doing any dev until I get my Pandora(batch2) BUT is there a way to rapidly develop and test code on the Pandora without voiding the warranty? I guess, you just boot an SD card - but maybe we can boot ?over serial? or maybe (shit I doubt it) over LAN?
edit4: ROFL. Disregard that LAN bit, we have no LAN! Only WLAN. ANd there's noway i'd wanna send a kernel over WLAN for debugging