6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Apr 28, 2024 5:46 pm

All times are UTC




Post new topic Reply to topic  [ 678 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16, 17, 18 ... 46  Next
Author Message
 Post subject: Re: Introduce yourself
PostPosted: Mon Jan 06, 2014 3:47 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8148
Location: Midwestern USA
Snial wrote:
Quote:
From what I recall, the original "ATA" interface was designed to be trivially interfaced with the bus on the PC/AT, hence the name "AT Attachement".

The ATA acronym was invented much later than the drives themselves. Originally PC hard drives were basically raw & a PC needed a card to drive it, which for the first HD equipped PC/XT was the seagate ST-506 controller card.

In the meantime Shugart Associates created the intelligent interface SASI which was standardized as SCSI. Here, the controller was effectively attached to the drive (well, its enclosure).

Your narrative is a bit off. SASI was created c. 1978 as an in-house standard and was publicly disclosed in early 1981 when NCR Corporation decided to adopt SASI for a new line of minicomputers. Their move was soon followed by Point 4 and some other minicomputer builders of the day, as SASI produced high (for the time) performance, and was adaptable to peripherals other than just disks. This all occurred well before the PC-XT was released. NCR subsequently spearheaded the process of getting SASI adopted as a formalized ANSI standard, which was completed in 1986 (along with the name change). NCR also produced the first SCSI ASIC, which had enough intelligence to sequence the SCSI bus in hardware. Later versions off-loaded much of the interface logic from the host machine, substantially reducing the size of the code required to handle SCSI transactions.

Quote:
So IDE was created to compete with SCSI, but all it was, was an ST-506 card bolted to the drive, hence "Integrated Drive Electronics". Only later was it re-termed ATA, But the protocol was still the same.

IDE wasn't designed to compete with anything. It was designed to be cheap and to be able to use off-the-shelf silicon, which was the guiding philosophy of the PC design in general during the 1980s (microchannel was a reversal of that philosopy). The hard drive mechanisms that were available at the time of the PC-XT's introduction were all ST-506/412 devices. The XT's hard drive interface was very crude and was simply IBM's quick and dirty response to requests for more capacious storage than could be had with floppy disks. The cost of adapting SASI to the PC was never considered, as the interface itself was never considered, due to it not being any kind of formalized standard (use of SASI/SCSI would come later when attention turned to making servers out of PCs). IBM was not entirely convinced at the time that the PC had a long-term role in the computing universe. Remember, these were folks who made their money selling big iron, not microcomputers.

The "advanced technology attachment" (ATA) predates IDE by several years and was introduced with the PC-AT. ST-506/412 devices have absolutely no intelligence—they are incapable of understanding any of the commands understood by later devices. Therefore, the host machine has to tell the drive about every little detail of its operation, e.g., which cylinder on which to position the heads, etc. In the PC-XT, primitives in the BIOS controlled the disk, which made for slow performance and a great deal of complication—among other things, the BIOS had to have detailed knowledge of the drive's geometry, which had to be entered via the CMOS setup utility.

ATA was an attempt by IBM to separate the mechanics of controlling an ST-506/412 disk from the operation of the computer itself. The idea was to move the grunt work involved in telling the drive what to do out of the BIOS and onto an "intelligent" card, intelligence being relative—ATA is quite crude when compared to SASI. The BIOS still had to know the drive geometry and such, but didn't have to get involved with niggling details such as head step pulse frequency and width and write precompensation, among other things. However, the interface card wasn't smart enough to eliminate the need for the BIOS to know about cylinders, heads and sectors—logical block addressing wasn't supported in hardware as it is now.

In contrast, what SASI did was insulate the host machine from having to handle all these details. SASI introduce the concept of logical block addresses, device numbers, logical units, etc., some five years before the development of the PC-AT. Incidentally, when the combination of ST-506/412 mechanisms and SASI was introduced to minicomputers, the host adapter was a humongous controller card plugged into the mainboard. It was connected to the mechanism controller card (often an OMTI 5300 type) via a 50 conductor ribbon cable, which morphed into the "narrow" SCSI bus after ANSI ratified the standard. The OMTI 5300 was of a size that allowed it to be attached to the underside of a full or half height hard drive or a QIC-02 tape mechanism. The controller could control two disks and one tape, and was capable of directly copying data between disks or one disk and a tape without host intervention. The first generation of the Lt. Kernal hard drive subsystem for the Commodore 64 mated an ST-506/412 drive to an OMTI 5300.

IDE ("integrated drive electronics") came later when the demand for hard drives in PCs ratcheted up and drive manufacturers started building more logic into their mechanisms in an effort to ease adaptation to PC hardware. By the later 1980s, use of ST-506/412 mechanisms was rapidly declining. In the SASI/SCSI arena, the combination of an ST-506/412 mechanism mated to an OMTI controller gave way to embedded SCSI drives, which did a lot to drive down the cost.

IDE went the cheap route, and SCSI went the high performance route. SATA is essentially the same thing: different hardware, same accountant-mentality design.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Last edited by BigDumbDinosaur on Mon Jan 06, 2014 6:42 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Mon Jan 06, 2014 4:52 am 
Offline
User avatar

Joined: Tue Aug 06, 2013 6:46 pm
Posts: 23
Location: Oregon
BigDumbDinosaur wrote:
It's great to see people fluent in Verilog post on this site.

Thanks, but I would not say that, I can usually hack at it until it works, I have no formal training any any of the languages I actually use except for C++. Trying to write code for 10+ years helps me out. In college I took Fortran and Pascal (the new up and coming language) but have not written a line of either since then. I see many of you guys use Forth, I have a very little experience with that but postscript is a stack based language like it so I have a little understanding of it.


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Tue Jan 07, 2014 3:42 am 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1373
BigDumbDinosaur wrote:
Snial wrote:
Quote:
From what I recall, the original "ATA" interface was designed to be trivially interfaced with the bus on the PC/AT, hence the name "AT Attachement".

The ATA acronym was invented much later than the drives themselves. Originally PC hard drives were basically raw & a PC needed a card to drive it, which for the first HD equipped PC/XT was the seagate ST-506 controller card.

In the meantime Shugart Associates created the intelligent interface SASI which was standardized as SCSI. Here, the controller was effectively attached to the drive (well, its enclosure).

Your narrative is a bit off. SASI was created c. 1978 as an in-house standard and was publicly disclosed in early 1981 when NCR Corporation decided to adopt SASI for a new line of minicomputers. Their move was soon followed by Point 4 and some other minicomputer builders of the day, as SASI produced high (for the time) performance, and was adaptable to peripherals other than just disks. This all occurred well before the PC-XT was released. NCR subsequently spearheaded the process of getting SASI adopted as a formalized ANSI standard, which was completed in 1986 (along with the name change). NCR also produced the first SCSI ASIC, which had enough intelligence to sequence the SCSI bus in hardware. Later versions off-loaded much of the interface logic from the host machine, substantially reducing the size of the code required to handle SCSI transactions.

Quote:
So IDE was created to compete with SCSI, but all it was, was an ST-506 card bolted to the drive, hence "Integrated Drive Electronics". Only later was it re-termed ATA, But the protocol was still the same.

IDE wasn't designed to compete with anything. It was designed to be cheap and to be able to use off-the-shelf silicon, which was the guiding philosophy of the PC design in general during the 1980s (microchannel was a reversal of that philosopy). The hard drive mechanisms that were available at the time of the PC-XT's introduction were all ST-506/412 devices. The XT's hard drive interface was very crude and was simply IBM's quick and dirty response to requests for more capacious storage than could be had with floppy disks. The cost of adapting SASI to the PC was never considered, as the interface itself was never considered, due to it not being any kind of formalized standard (use of SASI/SCSI would come later when attention turned to making servers out of PCs). IBM was not entirely convinced at the time that the PC had a long-term role in the computing universe. Remember, these were folks who made their money selling big iron, not microcomputers.

The "advanced technology attachment" (ATA) predates IDE by several years and was introduced with the PC-AT. ST-506/412 devices have absolutely no intelligence—they are incapable of understanding any of the commands understood by later devices. Therefore, the host machine has to tell the drive about every little detail of its operation, e.g., which cylinder on which to position the heads, etc. In the PC-XT, primitives in the BIOS controlled the disk, which made for slow performance and a great deal of complication—among other things, the BIOS had to have detailed knowledge of the drive's geometry, which had to be entered via the CMOS setup utility.

ATA was an attempt by IBM to separate the mechanics of controlling an ST-506/412 disk from the operation of the computer itself. The idea was to move the grunt work involved in telling the drive what to do out of the BIOS and onto an "intelligent" card, intelligence being relative—ATA is quite crude when compared to SASI. The BIOS still had to know the drive geometry and such, but didn't have to get involved with niggling details such as head step pulse frequency and width and write precompensation, among other things. However, the interface card wasn't smart enough to eliminate the need for the BIOS to know about cylinders, heads and sectors—logical block addressing wasn't supported in hardware as it is now.

In contrast, what SASI did was insulate the host machine from having to handle all these details. SASI introduce the concept of logical block addresses, device numbers, logical units, etc., some five years before the development of the PC-AT. Incidentally, when the combination of ST-506/412 mechanisms and SASI was introduced to minicomputers, the host adapter was a humongous controller card plugged into the mainboard. It was connected to the mechanism controller card (often an OMTI 5300 type) via a 50 conductor ribbon cable, which morphed into the "narrow" SCSI bus after ANSI ratified the standard. The OMTI 5300 was of a size that allowed it to be attached to the underside of a full or half height hard drive or a QIC-02 tape mechanism. The controller could control two disks and one tape, and was capable of directly copying data between disks or one disk and a tape without host intervention. The first generation of the Lt. Kernal hard drive subsystem for the Commodore 64 mated an ST-506/412 drive to an OMTI 5300.

IDE ("integrated drive electronics") came later when the demand for hard drives in PCs ratcheted up and drive manufacturers started building more logic into their mechanisms in an effort to ease adaptation to PC hardware. By the later 1980s, use of ST-506/412 mechanisms was rapidly declining. In the SASI/SCSI arena, the combination of an ST-506/412 mechanism mated to an OMTI controller gave way to embedded SCSI drives, which did a lot to drive down the cost.

IDE went the cheap route, and SCSI went the high performance route. SATA is essentially the same thing: different hardware, same accountant-mentality design.


Well, the original PC-XT had a controller card for the hard drive that was populated with Western Digital chips. There was no CMOS setup utility, only a 4-position DIP switch to select one of four drive types (drive geometry) per drive, two max (default setting for the 10MB drive). The CMOS setup utility came with the PC-AT later... as it had a realtime clock chip and battery and the extra CMOS bytes were used for some config data, floppy drive types and hard disk types. There was a limited table of geometry specs with the original PC-AT BIOS and also only supported two drives. The PC-AT had a newer controller card, still based on WD chips... and the same ST interface (34-pin control and 20-pin data cables). ATA did not come out with the PC-AT however, as the PC-AT came out in 1984.... ATA was much later.

During the PC-AT days, we managed to secure some larger drives (Seagate ST-4096 80MB and higher), no standard table entry could manage the drives, so I wrote some new code to replace the partition sector for the hard drive which could redefine the BIOS parameters on boot up... and would handle a second drive with my partition loaded on the second drive as well (wrote a utility to handle this). This worked quite well, but you had to boot from the hard disk to enable it as the BIOS still had a default drive config selected via CMOS. The AT also changed the sector interleave which was the only reason the drive transfer rate increased.... the PC-XT setup had an interleave 6, while the PC-AT had an interleave of 3. I wrote a new low-level format utility that had selectable interleave and could go down to 2 on the PC-AT with an appropriate increase in transfer rate.

IDE (acronym) was used before... when the PS/2 machines were announced. The model 70 (computer in a desk drawer size) had a single hard drive with integrated drive controller electronics and a large proprietary edge connector that plugged into an interposer card, which also handled two diskette drives with modified edge connectors to include power. We called it an IDE drive, go figure. It was also at that time when the ESDI drives came out in the larger floor standing PS/2 machines. This was also the first time that the drives had defect mapping with spare sectors, so a low-level format could yield 100% good drive space by utilizing spares... it also was the first drives to utilize logical block addressing and map to the BIOS geometry interface which was limited. The ESDI drives also had sector skewing... which allows the sector index to be skewed from one disk head surface to the next. As drive electronics were still not as well developed as they are now, head switch time was long enough that you would miss the next sequential sector on the next disk surface and have to wait for the disk to spin around. Nice feature... and this coupled to an interleave of 1 pretty much maximized the disk performance that could be had at the time.

Once we had logically mapped drives with 100% good data, the concept of copying a hard drive made sense, so I wrote the first hard disk copying utility (for the PC.... already had them for large DASD) and it was used for initial pre-loading of drives for all kinds of internal use... and for billable services to roll out large customer PC installations, etc. Fun stuff in all... and a old buddy took my code and wrapped a NetBIOS interface around it so we could copy drives thru a network... and this was still in the 80's.

SCSI drives came later in the PS/2 line... and then they phased out the PS/2s.... too expensive and, like pretty much everything IBM made back then, far too overbuilt for a product whose usable life was relatively short compared to the other products being made. It's an interesting history.... the original PC was more of a test the market... product life was set around 250K units... who knew. In any case, being built of entirely off the shelf components, and the entire source code listed available for the BIOS, it was only a matter of time before the clones set in. As to being short-sighted... doubt it... and I seriously doubt any company could have managed the explosive growth anywhere near as well. But ultimately, when something becomes a disposable commodity, it just didn't make for a profitable business model.... and as pointed out, bean-counters run everything nowadays.... even Mercedes-Benz's products fell victim to it, who knew.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Tue Jan 07, 2014 9:30 am 
Offline

Joined: Tue Jan 07, 2014 8:40 am
Posts: 91
Hello, all. I received an email from Garth telling me about this forum, and inviting me to join. Garth knows of my background in Forth, which is one of my primary interests in computing. I've been working in Forth for over 30 years, and have written several commercial and public-domain Forth implementations. My "own" Forth kernel is CamelForth, which can be found at http://www.camelforth.com, though I blush to admit there is not currently a 6502 implementation of it.

Currently I work freelance, developing hardware and software for embedded control systems. My most recent projects have used the T.I. MSP430, Freescale/Motorola 9S12 and 9S08, Renesas/Hitachi H8S, and NXP/Philips LPC (ARM7), so my processor tastes can best be described as "eclectic." I do still own my original Apple II, sitting proudly on a shelf, and I think I still have a Commodore 64, Commodore 128, and a KIM-1 in storage. My personal web page is http://www.bradrodriguez.com, for those interested in the boring details; but I'm afraid my resume there is a few years out of date.

_________________
Because there are never enough Forth implementations: http://www.camelforth.com


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Tue Jan 07, 2014 6:12 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Welcome!
How does Garth know of your background? Do tell.
It's great to have experts here on this forum from any branch of discipline.

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Tue Jan 07, 2014 7:37 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8428
Location: Southern California
ElEctric_EyE wrote:
How does Garth know of your background?

I got into Forth in about 1989 and became a member of the Forth Interest Group and took its magazine, Forth Dimensions, for the last so many years before the internet took over and FIG quit publishing the magazine. Brad Rodriguez is a big name in the Forth community; but I didn't realize he had done a little 6502 work until scotws posted a link to one of Brad's articles, in the topic "Series of articles about internals of various Forths" in our Forth sub-forum. I wandered around his website and found the 6502 reference, so I wrote to him at the email address he had there, hoping it was still current, and invited him to join us. I told him a little about the forum and various members' fields of expertise.

_________________
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: Re: Introduce yourself
PostPosted: Wed Jan 08, 2014 5:38 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 567
Hi, I'm Martin Heermance and I've been a fan of the 6502 since the late 70's. My first programming job was porting a Pascal compiler, editor, and command shell to the Atari 800 for Kayan software in 1984. Back in the 80's I built a few 6502 robots controlled by the Atari's joystick ports. They were crude open loop stuff and didn't work well.

But since the mid-naughts I've been building robots for a hobby using the Basic Stamp, Arduino, and Propeller chip. So now I bet I could apply what I know to some 6502 projects. But I need a 6502 computer to do it.


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Wed Jan 08, 2014 6:28 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
Welcome!


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Wed Jan 08, 2014 7:30 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8148
Location: Midwestern USA
Martin_H wrote:
Hi, I'm Martin Heermance...

Welcome!

Quote:
But I need a 6502 computer to do it.

Or you could use a 65C816. Once you get comfortable with the '816 in native mode you'll wonder how you ever got along without it. :D

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Fri Jan 10, 2014 2:04 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 567
BigDumbDinosaur wrote:
Or you could use a 65C816. Once you get comfortable with the '816 in native mode you'll wonder how you ever got along without it. :D

I've been thinking about this and it might be a good idea. For my application the principal advantage of a microprocessor over a microcontroller is more RAM and as many I/O pins as you care to memory map. The sbc 2.5 would allow me to I was planning to split 32 K RAM and 32 K EEPROM holding my program with 32 I/O pins. That's pretty good, but the 65C816 would allow even more RAM.


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Fri Jan 10, 2014 4:11 pm 
Offline
User avatar

Joined: Sun Jun 30, 2013 10:26 pm
Posts: 1927
Location: Sacramento, CA, USA
Hi, Martin. Have you seen Simon's Bender? His beer-brewing version uses the technically 'correct' brain, salvaged from an old Commodore 1541 Drive.

Mike


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Fri Jan 10, 2014 4:42 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 567
barrym95838 wrote:
Hi, Martin. Have you seen Simon's Bender? His beer-brewing version uses the technically 'correct' brain, salvaged from an old Commodore 1541 Drive.


I have and it's an humorous and ambitious project. Much more than what I have in mind.

I usually build robot arms and have low level firmware on a microcontroller that does motor control and inverse kinematics. I then send commands in the form of g-code from the PC to the robot arm, parse it on the arm, and follow the motion script. Here's a video of my latest project:

http://www.youtube.com/watch?v=okZQhwrBHb0

But I'm constantly running up against memory constraints on microcontrollers buffering the g-code versus local program and variable space. Both the Arduino and the Propeller chip have their strengths and weaknesses here, but their RAM goes quick. A Raspberry Pi would have much more capability, but isn't good for the time critical low level stuff because its not bare metal programming. I suppose an ARM embed would do the trick, but seems a bit boring.

The 6502 has a few advantages in that I've actually programmed interrupt service routines to control things in real time on one. It also has a bit of nostalgia which could be fun too.

Obviously I could buy a robot arm where someone has solved all these problems, but I like building the arm versus actually using it for anything practical. So buying one isn't any fun.


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Fri Jan 10, 2014 4:44 pm 
Offline

Joined: Wed Jan 03, 2007 3:53 pm
Posts: 51
Location: Sunny So Cal
Plus, 6502 interrupt latency is amazingly low.


Top
 Profile  
Reply with quote  
 Post subject: Re: Introduce yourself
PostPosted: Fri Jan 10, 2014 11:14 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8148
Location: Midwestern USA
6502inside wrote:
Plus, 6502 interrupt latency is amazingly low.

Even more so with the 65C02 or 65C816 if you use the SEI - WAI trick.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
 Post subject: Introduce yourself
PostPosted: Sun Feb 02, 2014 8:16 pm 
Offline

Joined: Sun Feb 02, 2014 11:05 am
Posts: 3
I have already placed this in another place in this forum, but as it describes me properly, I will reproduce it here (with some additions). I am both a professor of physics (by profession) and electronics technician (nowadays by hobby). I am from Belo Horizonte, Minas Gerais, Brazil. I was 13 when I won my first computer, and with 15, at the end of my technical school, I took 100 in microprocessor class because I had already studied previously, in technical and user documentation which came together with computer, the content of discipline. That computer, which I yet have, is a TK3000 IIe, a brazilian clone of Apple IIe. You can see one like mine here: (http://www.youtube.com/watch?v=cuIaSV_E7a0). I don´t have in my computer all the interfaces shown in the video, but the monitor and base system are exactly the same (with a serial and a parallel interfaces, a 64Kb-80 columns expansion (total:128kb) and two functionally Disk II 5 1/4 disk drivers). What happened with my machine was only a simple mouse problem: when stored, a mouse actually urinated on the processor chip, and the pins of cpu were eroded due this "incompatible accessory", literally falling apart. This "problematic accessory" also brought me a power cable problem (it chewed the power cable), but luckily the socket and the remainder computer's structure appear to do not have been functionally damaged (everything has been already properly washed); so my hopes yet survived. This machine has an advanced keyboard, compatible with portuguese language (ç, accentuation, etc.) An Z-80 is transparently and exclusively dedicated to control the programable keyboard (we do not have access to it via software). Here you can see its motherboard (https://commons.wikimedia.org/wiki/File ... _MA104.jpg) and here the block diagram: (http://www.tabalabs.com.br/apple/esquem ... igital.gif) and schematics (http://www.tabalabs.com.br/apple/esquem ... igital.gif). Here more about it: documentation (https://archive.org/search.php?query=tk3000); Wikipedia (https://pt.wikipedia.org/wiki/TK3000_IIe); youtube (http://www.youtube.com/watch?v=NZHwHEX4O0s). I am happy to have found this site and realized I can yet find the 65c02. I will find a way to buy it; and restore my computer to work! So, that's why I love 6502 machine. And, sorry about my English: as you can see, it is not my mother's language. Thanks.


Last edited by Anonimo Oculto on Sun Feb 02, 2014 9:02 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 678 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16, 17, 18 ... 46  Next

All times are UTC


Who is online

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