6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 8:13 am

All times are UTC




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 18 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: [75.1] New project
PostPosted: Wed Nov 15, 2000 1:00 am 
hello i am building my own 6502 computer, i has a multitasking/multiprocesser OS(designed and programmer by me)
one meg of ram, and a video board. If anyone is interested in helping, or if you have any programs for the 6502 please let me know. thanks


Report this post
Top
  
Reply with quote  
 Post subject: [75.2] New project
PostPosted: Fri Dec 01, 2000 5:02 pm 
I'd just like to know two things -

- One meg of ram in 16-bit, how'd you multiplex that beast?
- How does this multitasking OS of yours work - like UNIX, with processes, or what?

Cheers if you can help me out with that - just interested.
xf11@antionline.org if you've got a big explanation!


Report this post
Top
  
Reply with quote  
 Post subject: [75.3] New project
PostPosted: Sun Dec 03, 2000 5:21 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
We would be interested in how you decided to do the multi-tasking and multi-processor system. Both ideas have interested me, although I've never really done either of them. Would the proceesors be very tightly coupled, or just share some "mailbox" memory to pass things to each other (which would almost be more like a network of single-processor computers), or something in between? How many processors do you plan to have, what kinds of jobs are waiting for them, and how would you split up the work without having so much overhead that the whole idea becomes counter-productive? I'm sure there are many ways to do it.

I'm rather new to this forum. Although it's not a magazine to put articles in, anything the members can contribute, whether by short postings or by direction to a website, would be helpful to all. I hope to have a website up in a few months covering various projects, including my extensive 65c816 Forth and the home-made workbench computers I use regularly in my work.

Although I've never done real multitasking, I have an interrupt system in my 65c02 and '816 Forth that makes for easy installation and deletion of multiple prioritized interrupts and alarms. If you don't use the interrupt prioritizing, a single high-level Forth ISR runs with zero overhead. Otherwise, the ISR control loop adds a small amount of overhead.

In an experiment last week, I had audio sampling going in the background at 45,000 samples per second while remaining able to interpret, compile, or assemble in the foreground, so I could change parameters on the fly. This was accomplished with interrupts though, not multi-tasking. (Actually, the speed requirement ruled out doing it with multitasking in this particular case.)

One type of interrupt is the alarms. Alarm interrupts occur when their time comes instead of when a port needs service or something like that. This means I have to have the real-time clock running, which I turned off for the audio sampling mentioned above to avoid the jitter from the non-maskable RTC interrupt that hits every 10ms. An alarm would typically point to a Forth word (which is like a subroutine in Forth) that does a job and then usually sets another alarm for the next time the job should be done. Several alarms could be pending at any given time. The overhead to do this slows the system down by 0.034% if an alarm is pending, or 0.014% otherwise, which is negligible.

You can see how these things can do a type of multi-tasking, but they don't really have their own environments like the foreground task does. Before they return to the foreground task, they have to put the stacks and possibly other resources back the way they found them.

One of our products I designed in '93 is flying in nearly a thousand aircraft, using interrupts on a 65c02 to "switch tasks" 4000 times per second. It was developed on the home-made workbench computer.

Garth Wilson

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.4] New project
PostPosted: Sun Dec 03, 2000 5:37 pm 
Offline

Joined: Fri Aug 30, 2002 3:06 pm
Posts: 124
Location: Colorado
What are the practical applications for things like multi-tasking in a relatively low-end CPU? I agree that such things are fun to fiddle with, but what does one really use them for?
It would seem that if you really need multi-tasking (not just a priority interrupt scheme, such as what Garth described), then you may also need things like GUI interfaces, lots of memory, high CPU speeds, and other things that are not so practical on a 6502.

Pete


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.5] New project
PostPosted: Mon Dec 04, 2000 5:17 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
Even some rather small Forth kernals boast the ability to compile while they're already running something else AND remaining interactive at the same time so you can check on status or modify the operation of the running program from the keyboard (if the computer even has one). It definitely does not take a GUI or anything terribly complex to do this.

But while I've seen a few practical attractions to multitasking, those attractions have not been enough for me to take the time to make such a system myself-- yet. Since my home-made 65c802 workbench computer exists for instrumentation and control on the workbench, multitasking is primarily hindered by port conflicts, like having two different programs use the same pin to connect to two different non-tristate, output-only pins of other things on the workbench. Writing the software such that port usage can be easily moved to another port, or having more than one connector for a given port or set of ports, could partly solve this. These are in fact on my list for my next workbench computer (using the 65c816). But for now, the flexible system of interrupts and alarms does most of what I need for pseudo-multitasking.

My mild interest in multiprocessing would be to give a second processor some less time-critical jobs like human I/O, freeing up the main processor for the actual workbench experimentation work, which sometimes is real-time. But as you alude to, a faster processor may be a better solution. Now if you had both...

Garth Wilson

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.6] New project
PostPosted: Fri Dec 08, 2000 1:41 am 
Well all things are relative. The 6502 is plenty fast for a GUI(which i plan to use as the interface on the finished product). Also Memory is not a problem, you can just about put as much memory on the 6502 as you want(thanks to multiplexing). Also I intend to use it in robotics projects as the programming and main(offboard) computer. A 6502 computer being designed to prgoram 6502 robots, rather interesting i think. Any thoughts or are comments are greatly appreacated


Report this post
Top
  
Reply with quote  
 Post subject: [75.7] New project
PostPosted: Fri Dec 08, 2000 8:28 pm 
I would think that an Apple IIGS ROM 3 motherboard would be advantageous for a Robot project - 65816 at 2.8 mhz, the Ensoniq chip for speech, and a full meg of on board RAM with the option of another 7 meg for your programs, dual on board serial ports as well as a sound out port. Still lots of work to do, but a nice starting point.

Exegete AKA Roy Miller
Faith Orthodox Presbyterian Church
Apple ][ forever!


Report this post
Top
  
Reply with quote  
 Post subject: [75.8] New project
PostPosted: Sat Dec 09, 2000 1:03 am 
True, but the robot itself does not need such powerful components. One goal of mine is to recreate SENSI. My instructor and his wife created a analog robot with 100 neurons. It was able to guide itself around with NO program or any help. The robot would use a distributed network to fake neurons for something far more unanimalistic. One goal of mine is to create a computer which would be able to do all the programming and to be able "download" it to the robot. The reason i want to use the 6502 instead of a PC is because of compatability. When everything uses the same processor i can offload tasks from one processor to another without the conversion overhead. Also the 6502 is rather fun to program with, much more fun then the z80 or x86. However your suggestion is a rather good one and i will look into it. Thank you, and any further comments on this or anything else are always very welcome.


Report this post
Top
  
Reply with quote  
 Post subject: [75.9] New project
PostPosted: Sun Dec 10, 2000 2:39 pm 
Offline

Joined: Sun Oct 06, 2002 3:46 pm
Posts: 50
The Rockwell AIM 65/40 did this back in the mid 80's. They used a 6502 for the Main processor, then they used a 6504 for the 40 column thermal printer, & a 6504 for the Vaccum Florescent 40 Column Display. There was also an optional Video Display Controller. It furnished monochrome 80 column display & crude graphics. It was controlled by a 6502.
Ted Melton


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.10] New project
PostPosted: Sun Dec 10, 2000 2:45 pm 
Offline

Joined: Sun Oct 06, 2002 3:46 pm
Posts: 50
Yeah, the 6502 is fast enough for a GUI. Remember the GEOS operating system for the Commodore 64 & Apple II ? Not quite Windows NT, but better then Windows 3.00
Ted Melton


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.11] New project
PostPosted: Mon Dec 11, 2000 5:34 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
Our 12-year-old son sometimes uses GEOS on the Commodore 64 (which uses the 6510). In spite of the fact that the C64 used what was probably the slowest disc drive interface ever devised, his 1MHz C64 boots up GEOS and gets into a useful application faster than my Pentium here boots up Windoze and gets into a useful application. Now bump the 02's clock speed up to what the faster 65c02's will handle today, speed up the disc drive interface (or use flash), add a single 512Kx8 SRAM IC if you like (which GEOS says will increase the speed anywhere from ten to a hundred times), and see what you get.

Personally however, I'm not too crazy about GUI's. You don't need a GUI to have multitasking, graphics, etc., and it adds an incredible amount of overhead without much real benefit-- just a big, gee-whiz, can-you-top-that fluff factor.

Garth Wilson

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.12] New project
PostPosted: Mon Dec 11, 2000 1:22 pm 
Offline
Site Admin
User avatar

Joined: Fri Aug 30, 2002 1:08 am
Posts: 281
Location: Northern California
Hi Garth,

This is probably a bit off-topic for our 6502 discussions, but you might be interested in checking out a company called Creative Micro Designs (www.cmdweb.com). They make 20MHz 65C816 accelerator modules for the Commodore 64 and 128 and also offer a ram unit that takes SIMMs, a SCSI hard drive interface, and a disk drive that reads and writes PC floppies, and all of this stuff works under GEOS! Wow! :-)

Regards,
Mike

_________________
- Mike Naberezny (mike@naberezny.com) http://6502.org


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.13] New project
PostPosted: Mon Dec 11, 2000 10:08 pm 
Offline

Joined: Sun Oct 06, 2002 3:46 pm
Posts: 50
Yeah, I agree. No matter how fast Intel or AMD make their processors, Microsoft's Windoze will always need more. When I go back and run some DOS applications, they REALLY fly.
But I would like to see a new computer with a really FAST 6502 like you're talking about.

Ted Melton


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.14] New project
PostPosted: Thu Jan 11, 2001 8:44 pm 
Offline

Joined: Mon Dec 23, 2002 8:47 pm
Posts: 70
5-6MB. You could only use 7MB on the IIgs, (was it 7MB on the 1, 6MB on the 3?)...something like that. Maybe a ROM 0 or 1 would be better depending on the situation?


Report this post
Top
 Profile  
Reply with quote  
 Post subject: [75.15] New project
PostPosted: Thu Jan 11, 2001 8:47 pm 
Offline

Joined: Mon Dec 23, 2002 8:47 pm
Posts: 70
The Apple II disk drives weren't too shabby...but yeah, that C64 had the most sluggish FDD in existence.


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 18 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: