i had this idea to make an IIgs Clone OS. with functionality of IIgs as well as Newer OS's:
I Don't know where to start. I want features like:
USB Access (USB Drives\Flash Memory\Printers)
A somewhat usable TCP/IP Internet Stack as well as PPP
something to emulate the Ensoniq Audio Card.
Also a modified API to support everything!
GSCC (//GS C Compiler)
Modified GSOS
FAT32 for HDD.
and a couple of other things as well.
i was thinking to modify a BSD\Linux Kernel for the FAT32\USB\TCP-IP\PPP\ Audio Card Support.
or make my own kernel. I am new to OS Development
I Have the following on my PC:
Win XP
Cygwin
and i might get Debian Linux or something for kernal usage.
PC/GS - An Apple //gs Clone
Re: PC/GS - An Apple //gs Clone
Hi,
* Get the Intel Manuals.
* Build a cross compiler for Cygwin.
* [optional]Have a go at a basic "Hello World" bootloader, at least so you get the idea of how to use your assembler in an environment with no support libraries etc...
* Have a look at how to switch to protected mode and get to know about things like GDTs, IDTs and mechanisms of how the CPU deals with interrupts (which you will need to know inside-out for multitasking).
* Have a look at Bran's Kernel Development Tutorial and also think about whether you would like to use GRUB or a custom boot loader.
* Now you know about programming hardware at a fairly low level, think about how you can actually achieve your original design in practice. Your original design will often need some tweaking at this stage!
During all of the above stages, read the wiki often!
Good luck,
Adam
You will get lots of opinions on this, but roughly speaking, I would look at the following for a fairly Generic introduction to OS dev (not necessarily this order!):Speewave wrote: I Don't know where to start.
* Get the Intel Manuals.
* Build a cross compiler for Cygwin.
* [optional]Have a go at a basic "Hello World" bootloader, at least so you get the idea of how to use your assembler in an environment with no support libraries etc...
* Have a look at how to switch to protected mode and get to know about things like GDTs, IDTs and mechanisms of how the CPU deals with interrupts (which you will need to know inside-out for multitasking).
* Have a look at Bran's Kernel Development Tutorial and also think about whether you would like to use GRUB or a custom boot loader.
* Now you know about programming hardware at a fairly low level, think about how you can actually achieve your original design in practice. Your original design will often need some tweaking at this stage!
During all of the above stages, read the wiki often!
Good luck,
Adam
Re: PC/GS - An Apple //gs Clone
What do you mean by that?Build a cross compiler for Cygwin.
also i think i might make my own kernel but how can i incorperate things like TCP/IP, Devices not picked up by BIOS like USB Printers, USB Mass Storage, CD\DVD Drives?
As for a boot loader i am going to use GRUB.
the whole point of the project is to kinda be like Apple IIgs (Play Games, Same Interface, Apple II\IIe Compatability) but with Newer Features (FAT32,Enhanced Speed,CD\DVD, stuff like that.[/quote]
- Brynet-Inc
- Member
- Posts: 2426
- Joined: Tue Oct 17, 2006 9:29 pm
- Libera.chat IRC: brynet
- Location: Canada
- Contact:
So what? You're planning on writing this "Apple IIgs" clone.. Are you also going to be emulating the accompanying hardware?
Most notably, You'll have to emulate it's processor.. http://en.wikipedia.org/wiki/65816_Microprocessor
You also seem to have a very trivial understanding of computer hardware and common components, My advice would be to browse the Wiki and possibly do some software development work for a few years..
Most notably, You'll have to emulate it's processor.. http://en.wikipedia.org/wiki/65816_Microprocessor
You also seem to have a very trivial understanding of computer hardware and common components, My advice would be to browse the Wiki and possibly do some software development work for a few years..
well i knew i had to emulate the Ensoniq DOC Audio Card and use the PC Speaker for Apple //e audio. as well as the graphics system and a 2\3 mouse button configuration. i forgot about data Read\Write for ProDOS volumes. as well as its processor.
I would probably stick to a OS that uses common Processers, 386,Pentum (1-4),Celeron, AMD. i doubted this after i kind of figured out that. i am not sure how to work the ProDOS File System in for Apps That use it. i would probably stick to something that would better fit something in today's usage.
I would probably stick to a OS that uses common Processers, 386,Pentum (1-4),Celeron, AMD. i doubted this after i kind of figured out that. i am not sure how to work the ProDOS File System in for Apps That use it. i would probably stick to something that would better fit something in today's usage.
Re: PC/GS - An Apple //gs Clone
Have a look at this page...Speewave wrote:What do you mean by that?Build a cross compiler for Cygwin.
...and this one. Generally, don't rely on devices being 'picked up' by the BIOS unless you are planning on staying in real mode and using BIOS interrupts. If you are switching to protected mode (it sounds like you are from previous posts), don't even rely on BIOS detection for floppy or hard disk drives.Speewave wrote: also i think i might make my own kernel but how can i incorperate things like TCP/IP, Devices not picked up by BIOS like USB Printers, USB Mass Storage, CD\DVD Drives?
If you want TCP/IP, IIRC you will have to implement a driver for the specific card (NE2000 seems popular), then a TCP/IP stack on top of that. I guess some network cards probably implement the TCP/IP stack in hardware (??), but even so, you'll still need some kind of driver for the card you intend to support.
For CD/DVD drives, you need to look at implementing ATA/PI.
As for USB devices, you will need to implement Bus support first, and then write a separate driver for each device you want to support. I believe that the exception is Mass Storage devices as I think all of those conform to a single specification.
Sorry I'm a little sketchy on the details but I haven't implemented USB myself yet.
HTH
Adam