• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Unix for 8-bit Apple

Dog Cow

68020
Ok, now I'm just really pushing things here, aren't I? :p Aside from my project to write a network game for the Apple II, I also want to look into Unix or any other multi-tasking implementation for 8-bit Apple II, since I got a //e back in March. GNO/ME is good, but that's for the IIgs, so I want to see if something like this is possible for a 64/128k RAM, 6502B machine.

Legend tells that Unix used to fit in 32K of RAM! I found this by reading some old newsgroups. I still have a lot of more searching and researching to do, but here's a list of some stuff which I have found or is on my mind:

- There's a program called Davex which is a command shell; there's also ANIX as well.

- would it be possible to compile Unix for the 6502? I know there is a C compiler out there, so the next thing would be to find old Unix source.

- what about Contiki? I've heard of it, but have never used it.

- has anyone else thought about doing multi-tasking on an 8-bit Apple?

- am I barking up the wrong tree? That is, is there a Linux or something else for the 6502?

More searching brought this page: http://everything2.com/title/6502%2520Unix

Looks like the two keywords are 6052 and UNIX when searching, not Apple II or anything similar. Interesting to note those people say the machine wouldn't have an MMU, but I am pretty sure that the IIe has one for doing bank-switched RAM. However, that would likely require rewrites/patches to get working correctly.

 
Urg, 6502 is one of the worst processors for C let alone UNIX. The size of the stack (256 bytes) is crippling. So you have to do the stack yourself. Also the 6502 has no virtual memory management, so fork() becomes meaningless.

 
What about the MMU in the //e?
How much memory does the MMU page in and out at a time? Both granularity, and within the memory map of the 6502?
I don't know. I have the IIe Technical Reference Manual, but I haven't read it all yet. I should probably do that.

 
What about the MMU in the //e?
You might want to take a look at a couple of projects that have come before. But first, you probably want to abandon all hope of re-using source code directly; whatever you are doing, it'll take refactoring to work on your target platform. ;-)

Have a look at the LNG (LUnix Next Generation) project, which includes preemptive multitasking (on the C64):

http://lng.sourceforge.net

Some Apple Contiki notes:

http://a2central.com/?p=1427

 
I think the closest you'll come to something that works out of the box w/o a lot of work is Contiki. I don't have any experience with it, but some people around here do.

 
I took a look at ProLine last night, since it apparently has a lot of Unix-like architecture.
Except I don't believe it does multitasking, does it?
I don't think that it does. I just read the manual last evening, and it looks like it's a bunch of BASIC scripts all tied together. It does have a task scheduler, though.

 
I played with it a bit last year... I was hoping to get a proline bbs online, but the message board part is pretty archaic and I wasn't up to the task of writing a new one. Neat to play with though, and very well documented too.

 
Maybe luddite could write a bit about his Contiki experiences for us, and explain the differences between the 1.x and 2.x branches. I recently read something about 2.x being focused on the embedded space, and not even supporting the GUI stuff now??

 
Unfortunately I don't have much to contribute... I haven't done any programming for Contiki. As far as using it goes, I'm running the 2.x version on the web server and I use 1.3 for browsing. With 64K of memory supported, multitasking is more of a novelty than anything... you can maybe run the browser and calculator at teh same time.

 
I don't think not programming for Contiki disqualifies you from commenting on its use. :) Anything about the (user perspective!) differences between 1.x and 2.x, using the UI or the browser, response to your server/site, etc, would be fun to hear.

I thought I read once that you can run Contiki as a process under Unix. Not sure though. If true, that might be a good way to get some exposure to it.

 
Well, the browser is a damned handy thing... with serious limitations. It's not really much good for modern web content, but it is a great way to download files to your Apple II. You can use the wget program to download files to Contiki's directory or disk images can be written directly to disk. I think it's safe to say that most of the other applications are proof-of-concept only... I've had limited success with email and ftp. Unfortunately the telnet app isn't much use, which is a shame because it would actually be quite handy if it was a bit better developed.

As for Contiki 2.x, I believe it does still support the browser and gui, but no one's got round to porting the various programs (other than the web server) yet. There doesn't seem to be much interest in the Apple II community as far as development goes, which is a shame...

WRT the web server... well, it's surprisingly robust! Needs rebooting maybe once a month and has survived several hundred hits per day for short periods. Mine's running off a single Disk ][ floppy, so it's as low-spec as it could be (unless contiki could be patched to load from tape!)... I imagine running it from a CFFA or hard drive would be quite a bit faster -- though not as much fun.

 
I don't think that it does. I just read the manual last evening, and it looks like it's a bunch of BASIC scripts all tied together. It does have a task scheduler, though.
Here's another possibility for you: http://www.appleoldies.ca/kix/index.htm it's Bill Buckles KYAN Pascal page. Part of the stuff there is a KIX shell that adds several UNIX like features to PRODOS.
Thanks for the link, I'll check it out. I've seen you quite a few times on csa2 as well. :) UNIX on the Apple II is something that people have been talking about for over 20 years now, it seems.

 
Thanks for the link, I'll check it out. I've seen you quite a few times on csa2 as well. :) UNIX on the Apple II is something that people have been talking about for over 20 years now, it seems.
Yeah I tend to hang around most of the Apple II forums that I've been able to find. A lot of good discussions, sometimes some stupid spam, and I like the people I've met through the different forums. It's also helped broaden my knowledge of the Apple II world.

What do you go by on there, since I haven't seen Dog Cow as a name on any messages.

Dean

 
Back
Top