6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Sep 29, 2024 2:30 pm

All times are UTC




Post new topic Reply to topic  [ 75 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject:
PostPosted: Thu May 22, 2003 6:35 am 
Offline

Joined: Wed May 21, 2003 1:08 pm
Posts: 27
Location: Germany
kc5tja wrote:
Would you be able to post the Forth code for this? I'd be interested in viewing the Forth sources when they're complete.


You can find the latest information and sources on this project at http://www.strotmann.de/twiki/bin/view/APG/UsbDDkD

Quote:
The nice thing about this is, if we make the FPGAs load from EEPROM, it'd be possible to hot-fix "hardware bugs."


Regarding hot-fixing, do you know Tiny-Open-Firmware (http://www.tinyboot.com/)? Its a FORTH system especially for Firmware on limited small systems.

Quote:
Quote:
I plan for 2-3 K 6502 Code for a generic driver (Mouse, Keyboard). For Ethernet or Storage you need also to implement higher levels like FAT Filesystem or TCP/IP which can get bloated big.


FAT is utterly trivial to implement. Remember that the original PCs shipped with only 64K to 128K of RAM installed; DOS 1.x had to be loaded into a portion of that RAM. VFAT32 is only marginally more sophisticated. I wouldn't bother with VFAT16 -- it's a waste.


If so, FAT should not be the problem :)

Quote:
Quote:
So if you format the Storage with a low-level filesystem like ATARI DOS 2.x, the drivers on the 6502 will be small.


I'm willing to bet that FAT is as simple as AtariDOS, and all the while, you gain the benefits of supporting subdirectories. Are there any sites that document AtariDOS (seeing as how Commodore's filesystem is quite well documented on the Internet, there should be comparable docs for AtariDOS as well) that you recommend as a starting point?


I used ATARI DOS only as an example. I think all DOS systems for Homecomputers are somewhat similar in complexity. ATARI DOS is not really a masterpiece or a good template for new development. Anyway, it is well documented (including 6502 Source) in the book "Inside ATARI DOS", online at http://www.atariarchives.org/iad/

Best regards

Carsten


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri May 23, 2003 7:04 am 
Offline

Joined: Thu Jan 16, 2003 12:55 pm
Posts: 64
Location: Indianapolis
I'm fairly inexperienced with hardware stuff. I hope you don't mind me jumping in here. I find the idea of a 65xx-based PC to be quite interesting. Especially if it could have good sound capabilities, for synthesis and/or digital mixing.

kc5tja wrote:
I was envisioning that FPGAs would be used pretty much for all custom logic in the computer, including video and audio, SmartMedia interface, basic I/O ports, etc. I think it'd be best to also include the USB interface in the FPGA category as well.


That sounds good. So, this FPGA would be configurable by running code on the machine? Would that make it possible for a user to do something like create a register that could do specific tasks that usually requires hundreds of CPU cycles to accomplish?

Reminds me of a website I visited once, of some company that had developed an FPGA add-on for (I think it was) an x86 PC. It had software that would read the source code to a program and automatically configure the FPGA to handle the parts that it does best. Probably only useful for extreme number-crunching or something, but it sounded interesting anyways.

I don't know much about FPGAs, myself.. but I've seen some really impressive things done with them. I'm not sure how I would convert something I would think of as assembly source code to pure logic. Am I "jumping in the deep end" by thinking of it that way? :)


Last edited by Memblers on Fri Jul 25, 2003 5:56 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jul 20, 2003 10:29 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
Memblers wrote:
That sounds good. So, this FPGA would be configurable by running code on the machine? Would that make it possible for a user to do something like create a register that could do specific tasks that usually requires hundreds of CPU cycles to accomplish?


Yes, you would include a piece of software which loads a large table of bytes into the FPGA chip, and that would reprogram the FPGA's internal logic.

Quote:
I don't know much about FPGAs, myself.. but I've seen some really impressive things done with them. I'm not sure how I would convert something I would think of as assembly source code to pure logic. Am I "jumping in the deep end" by thinking of it that way? :)


FPGA information is very hard to come by. The manufacturers generally do not want to release programming information for their chips without expensive licenses, which is why you so rarely see open source tools for working with FPGAs (and even then, it's usually only for simulation).

You generally would not convert assembly language into a logic circuit unless you really needed the speed it offered. Even though an FPGA is programmable, it is not programmable in the same sense a microprocessor is -- an FPGA is still a specialized device.

The use of FPGAs in my idea was to dedicate, for example, one FPGA for use as a video chip, one for use as an audio chip, etc. Their programming would be relatively fixed -- but in the event some special capability was needed, or in the event a "hardware bug" was discovered, implementing the appropriate logic to upgrade or fix the circuits could be done at boot-time, or even while the machine is running.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Aug 21, 2003 12:37 am 
Offline

Joined: Thu Jan 16, 2003 12:55 pm
Posts: 64
Location: Indianapolis
Have you seen this?

http://www.xgamestation.com/

It sounds a lot like what was being discussed in this thread. It uses an FPGA for video, and it optionally supports a 65816.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Sep 04, 2003 3:26 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
Memblers wrote:
Have you seen this?

http://www.xgamestation.com/

It sounds a lot like what was being discussed in this thread. It uses an FPGA for video, and it optionally supports a 65816.


Yes, I've seen it. It reminds me of the Commodore One project, which I also hope to see marketed. I can't guarantee that I'll purchase either (where am I going to put it? Will it be truely cost-effective for my needs?), but I'm glad someone out there is trying something new.

Look into the Commodore One. It seems to be a pretty decent machine.

--
Samuel A. Falvo II


Top
 Profile  
Reply with quote  
 Post subject: 6502-based pc
PostPosted: Sat Dec 06, 2003 11:23 am 
Offline

Joined: Tue Nov 25, 2003 7:41 pm
Posts: 6
Location: Kiedrich, Germany
Hy!

I think it's a good idea to start such a project.
In my opinion, diskettes are still useful, but too old.
I suggest using a DATA-POD, described on the 6502.org
project page

good luck!

_________________
---===[HeLlRaIsA]===---


Top
 Profile  
Reply with quote  
 Post subject: Re: 6502-based pc
PostPosted: Sat Dec 06, 2003 2:40 pm 
Offline

Joined: Tue Sep 30, 2003 5:46 pm
Posts: 30
Location: Central Wisconsin
Hellraisa wrote:
In my opinion, diskettes are still useful, but too old.
I suggest using a DATA-POD, described on the 6502.org
project page


I actually was thinking that CompactFlash with the FAT format would be the most useful...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Dec 06, 2003 4:44 pm 
Offline

Joined: Tue Nov 25, 2003 7:41 pm
Posts: 6
Location: Kiedrich, Germany
I think you're right *g*

_________________
---===[HeLlRaIsA]===---


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Dec 06, 2003 7:33 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
CF has a whopping 50 (or so) connections to make, and I'm sure you won't find any at 5V.  I'd prefer to see something like MMC (MultiMedia Card), which only has 7 connections (including power and ground).  In SPI mode the interfacing is much simpler, and converting from 5V to 3V for just four unidirectional lines is much simpler.  It's smaller too, BTW.  I have a couple of MMC connectors on order from Digi-Key.  They were back ordered and supposedly going to be in yesterday. Edit, later: SD Card took over, and MMC went by the wayside.  Same size of card, but 9 connections instead of 7.

[Edit, many years later:]
kc5tja wrote:
I would love to see the concept of a serial loop bus be re-introduced

Done:D But it resulted in our 65SIB (6502.org Serial Interface Bus).

cas wrote:
kc5tja wrote:
Would you be able to post the Forth code for this?  I'd be interested in viewing the Forth sources when they're complete.

You can find the latest information and sources on this project at http://www.strotmann.de/twiki/bin/view/APG/UsbDDkD

Link is now dead.  Update?

_________________
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?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Dec 06, 2003 9:13 pm 
Offline

Joined: Tue Sep 30, 2003 5:46 pm
Posts: 30
Location: Central Wisconsin
GARTHWILSON wrote:
CF has a whopping 50 (or so) connections to make, and I'm sure you won't find any at 5V. I'd prefer to see something like MMC (MultiMedia Card), which only has 7 connections (including power and ground). In SPI mode the interfacing is much simpler, and converting from 5V to 3V for just four unidirectional lines is much simpler. It's smaller too, BTW. I have a couple of MMC connectors on order from Digi-Key. They were back ordered and supposedly going to be in yesterday.


According the the CF+ spec I downloaded, VCC is +5V or +3.3V. (Page 28 at the bottom of the page.)

I picked up a CF connector from digikey... and I do agree with you that the pin count is daunting. I was going to ask when I finally got to that stage, but I may as well do that now - how does one deal prototyping with a CF card?? :)

I actually don't "get" SPI - unless my hardware does it for me. Isn't there a lot of timing issues to deal with for serial communication? Or, are there components that handle that for you?

Also, how does the card work? CompactFlash works like an IDE drive - hence my thoughts on treating it like a drive - and using it to easily copy files from the PC to the card to whatever I finally build. It uses a standard FAT format too, so no special software or drivers are required on the PC side.

My 2 cents, which is subject to change as I learn more on the entire electronics subject. (I think I started in late September, so I am truly a total newbie.)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Dec 06, 2003 10:27 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
SPI is really quite simple.  [Edit, many years later:  See my discussion of it in the "circuit potpourri" page of the 6502 primer, at http://wilsonminesco.com/6502primer/pot ... ITBANG_SPI .]  You have a clock line (CK), serial data in (DI or SI), serial data out (DO or SO), and a select line.  If you only have one controller (which is usually the case), none of the lines have to be bidirectional (which is nice for converting between 3V and 5V).  SPI is very similar to how the 6522's serial port works, although the 6522's serial port is not 100% SPI-compatible so bit-banging with other 6522 port bits is in order.  That's simple though because there are virtually no timing requirements other than to look out for things like the usual data set-up time before the clock edge, which you won't be violating anyway with a 6522.  Each data bit is clocked into the receiving device typically on the rising CK edge.  An MMC will still require that you write the various routines to tell the memory what you want to do and read and write data, but the part about how to get this information back and forth through the SPI itself is quite easy.

If you want to get a taste for SPI with a lesser investment in time and parts, you could get one of the small 93-series serial EEPROMs, like the 93C46, 93C56, 93C66 etc. which you can get in an 8-pin DIP as cheap as $0.59 at Jameco.

Quote:
Isn't there a lot of timing issues to deal with for serial communication?

No, you're thinking of asynchronous serial like RS-232, where yes, the timing requirements are very stringent.  SPI, originally from Motorola, is one of the popular synchronous (not asynchronous) serial protocols.  Another one is I²C ("eye squared see"), which is originally from Philips.  National Semiconductor's Microwire is almost the same as SPI, and in some cases is compatible with one of the SPI modes.  SMBus is similar to I²C but does have some timing requirements, albeit much less than asynchronous serial has.  Dallas's 1-wire, since it has no second wire for a clock line, is not really synchronous, and individual bits must have microsecond resolution.

I would recommend getting to know at least I²C and SPI since there are probably thousands of different parts available with these interfaces now, and they really cut the hardware interface requirements which means your "creation" won't take as much room and it won't take your whole life to build.  Available parts include memory, UARTs, signal generators, A/D and D/A converters, digital pots, relay drivers, display drivers, and a whole lot more.

_________________
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?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Dec 07, 2003 4:16 pm 
Offline

Joined: Tue Sep 30, 2003 5:46 pm
Posts: 30
Location: Central Wisconsin
Sounds interesting. I've added parts to my Digi-Key order... both the serial EEPROM as well as the MMC adapter.

Regarding MMC, where are you getting information? I did find the system summary at the MMC Association web site. Is that sufficient? (I've just skimmed it.)

The good news is that the thought of using a FAT filesystem as the standard between the PC and whatever I do is still a viable solution. Just the technology around it has changed. Unfortunately, in the system summary, that piece hasn't been filled in.

Now for my required stupid questions... Are you simply using resistors to drop the voltage from 5V to 3.3V? Also, if you're using the 6522 with "bit-banging" can you share the details? If not, I'd be interested in seeing code or a diagram. (Whichever is appropriate.)

I'm not really in a hurry - so if you delay a response, that's fine. I've gotten back into AppleCommander, and I'm still working on my RGB video for my creation, so I'm quite a ways from needing some storage/communication solution. But, I like to keep my eyes and ears open!


Top
 Profile  
Reply with quote  
 Post subject: My 2 cents of it all
PostPosted: Sat Dec 13, 2003 4:44 pm 
Offline

Joined: Sat Dec 13, 2003 3:37 pm
Posts: 1004
I've seen this thread drift and yaw over the spectrum of topics. I was hoping I could summarize some things.

There is a motivation to make a "be all end all" product that "suits all needs". Everyone has different wants and desires out of something like this. The problem is that once you make an all powerful system, you end up with something vast and complicated like the PC is today.

The PC is truly a generic machine that can do many things well. But for the user experience, it is difficult for its generic nature to not show through. For example, it has long boot times so that it can figure out what hardware is in the system, how old that hardware is, and whether it can talk to it. Then it must run through a generic procedure to locate code to make the system actually usable. This generic code then does essentially the exact same thing, hunting for hardware, initializing hardware, etc.

That's a lot of flexibility for a system, but it takes a lot of time to figure all of that out. It's almost impossible to take a stock "white box" machine and make it "instant on". And all of that flexibility leads to insane complexity trying to get the disparate pieces to work with each other socialably.

Back in the day, I'd turn my Atari on, and the machine was up before the TV heated up. I'd make a mistake with the computer running amok, hit the RESET button -- BAM "READY". Instantly.

The more generic you make a system, the longer it takes to stabilize and become usable. Making a generic platform is a waste of time, we already have a decent one (yea, there are Issues with the PC, but it's an amazing platform today).

This is the motivation for having a language in ROM. It makes the machine readily usable. You don't have to wait for it to load from a disk. You don't even need a disk.

If anything, I like the idea of some power friendly non-volital storage, simply battery backed up RAM. Done for the day? *CLICK* off goes the computer. Coming back *CLICK* on goes the computer, right where you left it.

Idle computer? SLEEP, keyboard hit, *BING* right where you left it.

Instant on and off is SUCH a wonderful feature (there was mention of Jef Raskins "Humane Interface", and that's a great book).

So, if anything, today I think it would be nice to have something that is a cross between the simple machine of yesterday with the pervasive, instantaneous abilities of modern palmtops and PDAs, but in a desktop format. If we're dreaming, let's dream of a desktop Newton.

Regarding Video, how is that done? If you put aside the hi tech accelerated graphics cards, what do you need to drive a VGA monitor? I guess for electronic savvy folks, this isn't that hard of a task, but for naive folks like me, I haven't a clue.

With sound, the original Mac had little more than a D/A converter for its sound, correct? vs the specialized chips of the Atari and Commodore. The chips are nice to off load the processor, and for perhaps as midi intruments.

I'm not much of a sound guy, relying mostly on MP3s and such which seem to simply be D/A streams, so I don't really know what a modern "sound card" actually does today.

Finally, while I think another goal should be to make the system as "self hosting" as possible. That is, once past a certain point, all of the work for the system should be done on the system (vs, say, on the PC).

(Someone mentioned Pygmy FORTH earlier. That's a system that is almost self hosting, in that it's written in itself -- it just relies on DOS at the moment.)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Dec 14, 2003 7:35 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
Welcome to the forum.  I'm glad to see you took the time to read the whole thread—which is why it's kept.

Quote:
There is a motivation to make a "be all end all" product that "suits all needs". Everyone has different wants and desires out of something like this. The problem is that once you make an all powerful system, you end up with something vast and complicated like the PC is today.

One of the challenges for those who really want it to be the "be all, end all" product is to do that without creating another PC mess.  Frankly I think you were waaaaay too nice to the PC industry and most especially Microsoft.  I just found out that Linux-based Lindows is becoming available.  You can see them at http://www.lindows.com.  It must be awfully hard to get such a company off the ground with the ugly green giant standing over you, but Lindows has in its favor all the people who are sick of MS's programming inefficiency and bugs, their worse-than-lousy support, the way they've taken away user control, the time and expense of PC maintenance, MS big-brother tactics, the way they've blackmailed software retailers and so on.  I have very little good to say about MS.  Lindows, OTOH, is based on the open-source Linux, and is committed to avoiding the MS problems I just mentioned.  I understand their system is much more reliable and their customer support is outstanding.

[Edit, many years later:]  MS demanded that Lindows (from "Linux windows," and certainly there were windows before MS came out with Windows) change its name.  IIRC, MS lost in court, but paid Lindows to change its name, which they did, to Linspire.  I bought a new PC with Linspire installed, and no MS Windows.  It was wonderful.  Everything just worked.  Linspire had its Click-n-Run software library too where almost all the software was free and it was much easier to install than Windows software is.  After a while though, Xandros bought Linspire, then dropped support.  About that time, Ubuntu seemed to be emerging as the leader in desktop Linux, so I got that (again, free).  That was great too, although I don't like what they've been doing in the last few years, and I'm thinking I ought to try Linux Mint.]

Quote:
The PC is truly a generic machine that can do many things well

...when the PnP works right, when the computer isn't crashing because of MS bugs, etc..

Quote:
But for the user experience, it is difficult for its generic nature to not show through. For example, it has long boot times

...due to programming inefficiency

Quote:
so that it can figure out what hardware is in the system

My HP-71 hand-held computer had PnP 10 years before they started talking about it in PCs, and it always works right.  In my case for example, within the first fraction of a second after turn-on, it already knows which modules I have plugged in, how much memory of each kind there is, what parts of memory I have freeported for independent file chains, it has checked the integrity of the file chains, and it knows that the interface loop is plugged in.  It issues the automatic device-addressing command on the loop (which is a serial, more-intelligent implementation of IEEE-488).  If there are no devices out there, it times out in two seconds.  If there are devices plugged in and turned on, it will almost instantly know how many disc drives, printers, test bench instruments, display devices, modems, interface converters, etc are there and what the basic capabilities of each one are, and has assigned each one an address.  Maximum number of peripherals with simple addressing is 30.  If you use extended addressing, it's 930.  Then it checks to see if any alarms came due, either action-type alarms that could not be carried out because the hardware was not left connected when they were due, or message alarms you didn't acknowledge because you weren't near the computer to hear it beeping at the time.  How much this thing does in the first second or two with a 700kHz clock speed puts the PC to shame!

Quote:
Then it must run through a generic procedure to locate code to make the system actually usable.

Why not put the code to run these things in ROM on the various peripherals themselves?  When my hard disc on this computer went down this summer, the shop could not re-install the sound board driver software because the company they expected to be able to get it from over the internet was out of business.

Quote:
It's almost impossible to take a stock "white box" machine and make it "instant on".

My HP-71 is almost instant-on, but as you say below, the code is always there—some in ROM, some in RAM—not having to be loaded from a disc.

Quote:
And all of that flexibility leads to insane complexity trying to get the disparate pieces to work with each other socialably.

It is indeed extremely complex; but the same thing could be done with a small fraction as much memory, loading time, and execution time if the programming were not so wasteful.  That's where we would hope to do much better.

Quote:
The more generic you make a system, the longer it takes to stabilize and become usable.  Making a generic platform is a waste of time, we already have a decent one (yea, there are Issues with the PC, but it's an amazing platform today).

I think the biggest obstacle to making it generic is that by definition, you have to be able to look ahead and come up with a system where you don't keep finding that you've painted yourself into a corner and can't do something else you just thought of without redesigning.  The PC is still not well suited to real-time work, in spite of astronomical clock speeds.

Quote:
This is the motivation for having a language in ROM. It makes the machine readily usable. You don't have to wait for it to load from a disk. You don't even need a disk.

And having things like this in ROM protects it from virii and dumb mistakes that could wipe it all out.  Even if it's in RAM, you'd get some degree of protection if you leave the option to do a hardware write-protect (via a DIP switch, for example) on different portions of it.

Quote:
If anything, I like the idea of some power friendly non-volatile storage, simply battery backed up RAM.

I'm sure the value of battery-backed RAM is underestimated by those who have never seen a nice operating system make use of it.  I normally have scores of files in my HP-71 all the time, ready to run without having to "load" them into another part of RAM or any of that.  For this reason, I seldom need to connect to a mass-storage device.  Beyond just having all your files right there however, it's better than just having the OS in ROM, because things like user preferences are retained in OS variables and flags.

Quote:
Instant on and off is SUCH a wonderful feature

An editorial in one of the electronics industry magazines said that's an area where calculators have an advantage that the PC will have a hard time overcoming.  Engineers, businessmen, and others will always reach for a calculator to do certain things when they have a PC right there.  Even very sophisticated ones won't keep you waiting for something to load.  Just turn it on and go.

Quote:
So, if anything, today I think it would be nice to have something that is a cross between the simple machine of yesterday with the pervasive, instantaneous abilities of modern palmtops and PDAs, but in a desktop format. If we're dreaming, let's dream of a desktop Newton.

How 'bout mixing some newer technology (start with a 16MHz 65816 with megabytes of 15ns memory) and the care with which software used to be written back when programmers could not afford to waste memory and processor speed.  I was "underwhelmed" however by the Newton.  The technology to recognize handwriting (when it works) is impressive— but I thought, "Somebody has forgotten that we used to use typewriters before we had computers because typing was faster than writing by hand—a lot faster!"

Quote:
Regarding video, how is that done? If you put aside the hi tech accelerated graphics cards, what do you need to drive a VGA monitor? I guess for electronic savvy folks, this isn't that hard of a task, but for naive folks like me, I haven't a clue.

Even there, Samuel Falvo (kc5tja) here has some good information on what is done with video, the fact that the PC industry standardized on certain GUI factors before studies showed that those high-overhead factors did not increase operator efficiency.

Quote:
With sound, the original Mac had little more than a D/A converter for its sound, correct? vs the specialized chips of the Atari and Commodore. The chips are nice to off load the processor, and for perhaps as MIDI instruments.

I've heard some very impressive music that was generated on Commodore 64's.  You'd never know from the sound of it that it came from a C64.  Offloading jobs like sound synthesis certainly leaves more processing power for other things, but the 6502's interrupt response is such a strong point of this processor that you can do fast, high-fidelity audio sampling just on interrupts with minimal hardware and still be able to do plenty of other things at the same time.  I'm trying to collect information on various processors' interrupt performance.  It has been hard to get complete info.  Howard Spiegel commented that he suspects many of the manufacturers try to partially hide the numbers because their processors' interrupt performance is so bad.  I have some information on each of 28 processors—mostly 8-bit—and so far, not a single one of them gives a modern WDC 65c02 any serious competition.  I have complete information on very few processors though.  If anyone can direct me to appropriate web pages, please do.

Quote:
I'm not much of a sound guy, relying mostly on MP3s and such which seem to simply be D/A streams, so I don't really know what a modern "sound card" actually does today.

MP3 is a lossy data-compression algorithm.  It allows recording music with less than 10% of the memory space that would be required to simply lay all the actual sample values down in memory.  With good speakers or headphones, you can definitely tell that the audio quality has been degraded by the MP3 process.  I think the .wav files are probably just uncompressed streams of samples to feed to a D/A converter.  I'm sure someone else on the forum knows.

Quote:
(Someone mentioned Pygmy FORTH earlier. That's a system that is almost self hosting, in that it's written in itself -- it just relies on DOS at the moment.)

I haven't used Pygmy Forth, but I am a strong proponent of Forth, for many reasons.  It makes the programmer highly productive.  Even the compiler is completely open to be extended and modified by the programmer.  Right from the beginning of Forth, it has had the tools to do OOP, even before it was called OOP.  Beyond being just a language, it's also a programming environment and sometimes the operating system too.  It is extremely frugal with memory.  It has gotten kind of a bad wrap partly because of a number of very poorly written, free, public-domain Forth kernels that have been circulated over the years; but even those poorly-written ones generally had the tools to make improvements to the kernel itself for anyone who wanted to put in the effort.  That cannot be said for other languages.  One person here on the forum is porting my 65816 Forth to the 65265.

_________________
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?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Dec 14, 2003 8:12 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
Quote:
Regarding MMC, where are you getting information? I did find the system summary at the MMC Association web site. Is that sufficient? (I've just skimmed it.)

greener,

I haven't forgotten about you.  The MMCA does not give you the entire MMC spec unless you pay a few hundred dollars.  I downloaded SanDisk's 100-page MultiMedia Card Product Manual from their website, but now I can't even figure out how I did that.  I can E-mail it to you if you like.  You can ignore a lot of it if you're only going to use SPI mode.  Again, very little of that is about SPI itself, since it's so simple.  Most of it is about how to tell the device to load a given page into one of the buffers, erase a block, etc..  I have another one on Atmel's, but Atmel does not supply very high densities.

Quote:
Now for my required stupid questions... Are you simply using resistors to drop the voltage from 5V to 3.3V?

No, I've used open-collector comparators for things like this.  The LM339 is cheap, and generally fast enough for this.  You just connect the top of the pull-up resistor to whatever voltage you want (3V, 5V, xV) regardless of the supply voltage on the comparator.  For the best rising- and falling-edge speeds, you'll generally want about 1mA of pull-up resistor current when the output is pulled low.  For the 5V outputs, 4.7K is good.  For the 3V logic outputs, I would use 2.7K or 3.3K.

For the MMC's power supply, I'll probably be using an LM317LZ, a linear 3-pin adjustable voltage regulator in a TO-92 package.  I got some at Mouser for $.29/each.  It looks like a small-signal transistor, like a 2N3904.

Quote:
Also, if you're using the 6522 with "bit-banging" can you share the details? If not, I'd be interested in seeing code or a diagram. (Whichever is appropriate.)

I doubt if I'll go to the trouble to write it all in assembly for use outside my Forth system, but you're welcome to my Forth source code for other things I've done with SPI if you want it.  Ultimately for maximum speed, I'll probably rewrite the Forth words as primitives, which means the insides are actually in assembly; but they will still interface to the rest of the Forth system through the normal Forth data stack.  The concept shouldn't be too hard for the non-Forther to pick up.  [Edit, many years later:] See http://wilsonminesco.com/6502primer/SPI.ASM .

I just finally got my MMC sockets from Digi-Key, so I suppose you did too since they were back-ordered for a long time and they just got them in.  I was pleasantly surprised that the quality appears to be much higher than I might expect for the price.  Now I need to figure out how to get that and everything else I want on the mezzanine board for my workbench computer, build, buy the highest density I can get by then (1/4GB?  1/2GB?), and then write the code.

_________________
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?


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 75 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 13 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: