PC/GS - An Apple //gs Clone

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

PC/GS - An Apple //gs Clone

Post by Speewave »

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.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: PC/GS - An Apple //gs Clone

Post by AJ »

Hi,
Speewave wrote: I Don't know where to start.
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!):

* 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
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Re: PC/GS - An Apple //gs Clone

Post by Speewave »

Build a cross compiler for Cygwin.
What do you mean by that?

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]
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post by Brynet-Inc »

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.. 8) 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..
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Post by Speewave »

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.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: PC/GS - An Apple //gs Clone

Post by AJ »

Speewave wrote:
Build a cross compiler for Cygwin.
What do you mean by that?
Have a look at this page...
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?
...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.

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
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Post by Speewave »

Thanks for the help. although i scrapped the project because of backwards compatability between my OS and Real Hardware and other features. i decided to make my own OS from my own kernel base. Thanks for to GCC Cross Compiling thing!
Post Reply