Introduce yourself

Let's talk about anything related to the 6502 microprocessor.
User avatar
BigDumbDinosaur
Posts: 9426
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Introduce yourself

Post by BigDumbDinosaur »

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.
Last edited by BigDumbDinosaur on Mon Jan 06, 2014 6:42 am, edited 1 time in total.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
player55328
Posts: 23
Joined: 06 Aug 2013
Location: Oregon

Re: Introduce yourself

Post by player55328 »

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.
User avatar
floobydust
Posts: 1394
Joined: 05 Mar 2013

Re: Introduce yourself

Post by floobydust »

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.
Brad R
Posts: 93
Joined: 07 Jan 2014
Contact:

Re: Introduce yourself

Post by Brad R »

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
ElEctric_EyE
Posts: 3260
Joined: 02 Mar 2009
Location: OH, USA

Re: Introduce yourself

Post by ElEctric_EyE »

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.
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Introduce yourself

Post by GARTHWILSON »

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?
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: Introduce yourself

Post by Martin_H »

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.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Re: Introduce yourself

Post by BigEd »

Welcome!
User avatar
BigDumbDinosaur
Posts: 9426
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Introduce yourself

Post by BigDumbDinosaur »

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!
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: Introduce yourself

Post by Martin_H »

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.
User avatar
barrym95838
Posts: 2056
Joined: 30 Jun 2013
Location: Sacramento, CA, USA

Re: Introduce yourself

Post by barrym95838 »

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
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: Introduce yourself

Post by Martin_H »

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.
6502inside
Posts: 102
Joined: 03 Jan 2007
Location: Sunny So Cal
Contact:

Re: Introduce yourself

Post by 6502inside »

Plus, 6502 interrupt latency is amazingly low.
User avatar
BigDumbDinosaur
Posts: 9426
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Introduce yourself

Post by BigDumbDinosaur »

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!
Anonimo Oculto
Posts: 3
Joined: 02 Feb 2014

Introduce yourself

Post by Anonimo Oculto »

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.
Post Reply