Jump to content
IGNORED

Could the 8-bit chips have had a place in the ST?


kool kitty89

Recommended Posts

Edit: nevermind... the 6301 is obviously present in the system given the schematics and programming guide... it's probably attached to the keyboard PCB itself rather than the motherboard. (so that would obviously facilitate an external keyboard with minimal pins/wiring -but that didn't happen until the MEGA in '87 -not that they shouldn't have had something like the MEGA form factor back in '85/86 ;)) So it's more or less like the 8048 in the original IBM PC keyboard.

 

However, that would imply that they could have used a simple parallel keyboard interface internally and cut the number of support chips and traces down -for that matter it might have been cheaper to use parallel I/O for the mouse/joystick ports as well -especially if they already relegated the keyboard to parallel I/O. So then you'd only need serial ports for RS232 and MIDI.

You'd then need to modify the keyboard interface for models with external keyboards -ie add a serial encoder in the keyboard and an added serial I/O port internally to decode ti to parallel data for the 68k. (or the external keyboards could have been parallel... but that would have meant a lot more pins, or at least a multiplexing scheme -actually, multiplexed parallel I/O could have been simpler/cheaper than the circuitry needed for additional serial I/O)

 

And again, if it came to a point where you only needed a PIA like chip for added I/O, the YM2149/AY8910 might be attractive for the bonus audio capabilities. (or if you only needed a single added 8-bit I/O port, there was the 28 pin AY8912 -unless there were significantly smaller/cheaper Parallel I/O chips available)

 

 

Hmm, the diagram here also made me thing on the YM2149 again: http://www.bighole.nl/pub/mirror/homepage.ntlworld.com/kryten_droid/Atari/ST/spg/st_prog_guide_1.htm

Was the YM2149 also used to generate the square wave for floppy drive motor control (which the Mac sacrificed its second -stereo- DMA sound channel for), or was it only used for some parallel I/O control lines for the floppy interface?

Edited by kool kitty89
Link to comment
Share on other sites

The 6301 is located on the keyboard PCB.

 

The motor control on the ST is a simple enable/disable control (from the YM's IO port) because the ST used PC-style drives.

Ah, OK... so that means the YM has 6 or 7 unused I/O ports on it as it is. (I wonder how the 68901's I/O lines are mapped/used)

Hmm, that could also mean that if it did keep the YM2149 and switched to fully parallel keyboard/joystick I/O, with a CIA added and both ACIAs removed (as well as the 6301 -replaced by bare parallel lines from the keyboard matrix) you could use a combination of the CIA (or VIA) and YM2149 ports (maybe some of the 68901 lines as well, depending on how those were used) to provide the parallel port, joystick/mouse I/O, and keyboard inputs. (leaving the serial I/O for MIDI and RS232 to CIA/VIA and the 68901)

 

OTOH it might have been better to use dual CIAs/VIAs (or one of each, but standardizing both would probably be cheaper) and no YM2149. It might not have been cheaper (PIA would have been cheaper), but could have allowed standardization of parts used and the added VIA/CIA serial port could have been connected to the keyboard port for models adding external keyboards. (but otherwise using direct parallel interfacing for the console models -or maybe for an external keypad if a really low-end version was released with no keypad) CIA/VIA has more comprehensive I/O management by a good margin than PIA/YM2149, so it may have been preferable in general to use those for any such parallel key/joystick I/O configuration.

 

And looking at the functionality a bit more, it seems like you probably could displace the 68901 with another VIA/CIA (at least with the composite functions of 2 other VIA/CIAs), so 3 VIA or CIA chips (40 pins each) and no 68901 (48 pins) or ACIAs (2x 24 pins) or YM2149 (40 pins) or 6301 (40 pins). (and the 3rd serial port would only be used for external keyboards/keypads) Using 3 identical chips probably would have eased GLUE logic design as well. The Amiga only used 2 CIAs (and no 68k specific off the shelf I/O chips like the 68901), but that was on top of more custom I/O logic.

 

With the layout the ST used, it almost seems like they originally intended to use a desktop/box form factor with a separate keyboard but later crammed it all into 1 case.

 

 

 

 

Thinking on the DMA audio circuit again: the cheapest/simplest implementation probably would have been a PWM DAC register at a fairly high clock rate. 16 Mhz would have been OK, but higher would have been better -16 MHz would have allowed 62.5 kHz at 8-bit or simple software interleaved channels at 15.6 kHz -or interleaved to whatever, or a different net resolution/sample rate -PWM is pretty flexible in that respect, easily trading resolution for sample rate. (even only 8 MHz would probably have been acceptable and could have a single 31.25 kHz 8-bit resolution channel -or again various traded resolutions/rates and software interleaving, which should use less resource than adding -thus it could be preferable to use interleaving to a 7 bit output or lower vs added 8-bit outputs depending on the circumstances -you'd want to avoid anything below ~14 kHz net output though as PWM tends to squeal at lower output rates -though stronger analog filtering could also address that, especially if switchable to allow less filtering at higher rates)

That should have simplified circuit/logic design and used less silicon, and that would have been important if they wanted to include the DAC on-chip with the DMA circuit. (especially if using the same chip/package as the FDD/HDD DMA controller) It would also have facilitated extensions to that sound architecture rather reasonably later on. (higher PWM clock, more hardware channels -or just a stereo channel- etc, etc; or using hardware added dual PWM circuits per channel like the Jaguar did)

 

You would have to put samples in PWM format rather than PCM, but that's not a huge deal. (for software playback it's a big deal due to the really high sample rates -which is why it's also super CPU intensive to do in software even compared to CPU driven PCM -like the PWM of the Apple II/Spectrum/PC beeper is used to do sample playback at times)

Link to comment
Share on other sites

Hmm, after all that, using POKEYs may still have been attractive depending on the relative expensive or CIA/VIA and the 68901. You could use the POKEYs to read the keyboard and one's serial port for MIDI with the other for a possible external keyboard (or keypad if A600 form factor ever was used) plus potential ADC capabilities (fast pot scan would be enough for audio recording) and/or cut pin counts for ST specific versions of POKEY (same die, different package) once stockpiles ran low. You'd still need additional I/O for the parallel port, floppy signaling, and reading the mouse/joysticks (perhaps cover some of that within the keyboard I/O, but probably not all of it -probably at least the buttons -so you'd still need 8-bits for the directional lines) and a single bottom barrel PIA could have been enough for that with the 68901's serial port still used for RS232 and the I/O lines used for additional signaling on the parallel, RS232, and floppy ports. In such a configuration, a CIA or VIA may still have been able to displace the 68901 though. And POKEY's audio (and timer and ADC) capabilities would be a bonus.

 

However, while all of that's still a much smaller footprint than what the ST used, it's more space than 3 CIAs/VIAs or 2 plus the 68901 (due to the added PIA needed), unless you could get away with 1 CIA/VIA and 2 POKEYs for all that functionality plus POKEY's bonus features and the fact that it was in stock already and owned by Atari Inc (so no off the shelf overhead and more potential for custom consolidation/repackaging, but also limited to economies of scale purely of Atari related production) and it would have the same footprint as 3 CIAs/VIAs. (in this case a VIA might be just what would be needed as it has the 4 control lines to CIA's 2 on top of the 16 I/O lines and the serial port -but the serial port has a bug that CIA's doesn't)

Though even if they did use PIA+2x POKEY+68901, it still may have been attractive with PIA already in stock (and possibly licensed) and pretty cheap... and one thing I didn't consider before is that prior to die shrinks/consolidation but besides just using fewer pin wide DIPs (32/28/24 depending on the case) they could also have used the same old dies in more efficient surface mounted packages that were still large enough to carry old dies (like LLC or QFP) before 3rd parties were offering off the shelf chips in that form factor. (did Atari Corp ever do that for RIOT, MARIA, or the 6502C in the 7800? -I think the ASIC in later 2600 Jrs was a LLC and CGIA was prototyped with a 68 pin LLC)

 

 

 

Whether DMA audio made use of POKEYs DACs or not is a separate issue. A simple PWM circuit may have been simpler/cheaper (and use POKEY just for chip sound -and software DAC stuff), though if you wanted to do pure PCM recording/playback, that would complicate things (if you sampled 8-bit PCM, it would need to be converted to PWM to use the DMA channel). Attaching a DMA circuit to the POKEYs may have been a practical option with pairing to 5-bit or 8-bit DACs (8-bit would require dividing the analog output of 1 POKEY by 16 and adding it to the other -with values mapped accordingly to the paired 4-bit DACs) and if you wanted 4 independent channels, that's 4 DMA channels rather than just 1, or you could limit it to 1 and still have the other channels used for chip sounds (and possibly use POKEY's timer capabilities to set the DMA sample rate), though in an 8-bit PCM mode, you'd only have 3 other channels really useful as the other 3 would be at 1/16th volume (so still working, but really quiet) but for 5-bit output you'd have 6 chip synth channels left to use as well, or even allow a single 4-bit channel. (which is one reason it would be good to have both normal and 8-bit DAC modes) Technically you could have 8 4-bit channels, but that's 8 DMA channels. (and there's only 6 timer capable channels to set independent sample rates as such -but still any number of 1-4 5/8-bit channels or 1-6 4-bit channels depending on the complexity of the DMA logic used, with paired channels, you'd obviously stagger the 2 timerless channels to be paired with channels with timers) Plus software driven stuff, of course.

Edited by kool kitty89
Link to comment
Share on other sites

I dont know about lots of extra clocks - the ST was pushed for it's RGB output and Mono monitor , but it might have been nice to have 360/720 pixels ( like the hercules adaptor for the PC ) and 224/256 lines as that would still work on the 16MHz clock. ( Having 6 planes would be easy to implement - just more pallette entries , but dual playfield would involve more work )

I don't see why using an RGB monitor would make more resolutions any less desirable... it's not like you'd need a multisync monitor, just changing the dot clock (which has no impact on ana analog monitor as there's no limit on horizontal resolution as such other then beam precision and dot pitch), it's the same as a TV other than the use of direct RGB (and on top of that, higher beam precision and dot pitch -at least on the good quality monitors).

If it increased complexity too much, then yeah, it would have been undesirable, but if it wasn't much to add otherwise, more horizontal dot resolutions would have been really useful in general (both for games and "serious" uses). The lowest res stuff would probably be limited to games for the most part, or maybe some specific art/graphics applications where high color depth was desirable at the expense of resolution... but for some other things the more moderately lower or higher resolutions could have been rather useful: especially for monitors fixed at normal NTSC/PAL calibration without external pots to adjust overscan. (at 8 MHz, you have very tall pixels in NTSC and hefty horizontal overscan... at 6 MHz you've got less visible pixels but almost perfectly square in NTSC... at 6.25 MHz you'd have perfectly square NTSC pixels and well over 288 pixels visible across -enough to reliably set that as the resolution without fear of overscan on TVs, so you could have 288x224 or slightly less vertically depending on NTSC calibration) In PAL, 8 MHz isn't too bad as it's pretty close to square as is the Amiga's clock (perfectly square PAL would be something close to 7.5 MHz), but you do have a hefty vertical boarder... but that's true for a ton of consoles/computers in PAL. (most master systems games would have played in something like 1.85:1 letterboxed ;))

 

And of course for RF/composite video users, the lower res modes would be even more applicable and more attractive for game developers as such on top of the lower resource for managing fewer pixels (and/or more practicality for higher depths)... especially in NTSC where the lower colorburst frequency causes artifacting sooner.

 

That's actually a problem for the Amiga too with too tall pixels and composite/RF artifacting in NTSC... though in the case of games, they could at least depend on the artifacts being solid due to the 2x NTSC color dot clock.

 

When the ST came out it didn't have any RF output , so the only way to use it was with the RGB or monochrome monitor. I like having 360/720 pixels as it doesn't involve any extra clocking options - just a slightly wider display. ( Thing's like multisync monitors were generally more expensive as well )

Link to comment
Share on other sites

and regarding the 6301 again... Yes it does have the ability to multiplex it's bus - but that requires extra circuitry and loses you the general I/O lines that you want for the keyboard matrix. I'm guessing that the price was also cheap as a similar part appears in the amiga keyboard circuitry ( and IBM keyboards also used a microcontroller plus serial arrangement for keyboards ) You even mentioned the plus side, that it would allow a seperate keyboard without a wide fragile parralel connector.

 

Regarding the 68901 - I think that the main function of it was as a 68000 autovectorising interupt device - it interfaced between the simpler 6800 class chips and generated the correct vectors so the 68000 wouldn't have to poll.

 

And - having Pokey's would suck as they can't handle multiple key events, or mice , or even joysticks, and the serial use would require sound channels to operate.

 

PWM would have been an option for implementing the sound output ( as it was on the Amiga ) - but if so it would have been best exposed as 16 bit stereo samples ( even if only 10-14 bits were valid ) in memory - That would have been something that would match the Amiga and also sell the Atari as a 'musicians machine' along with MIDI

Link to comment
Share on other sites

Regarding the 68901 - I think that the main function of it was as a 68000 autovectorising interupt device - it interfaced between the simpler 6800 class chips and generated the correct vectors so the 68000 wouldn't have to poll.

Ah, so an important chip to have with glueless logic...

 

And - having Pokey's would suck as they can't handle multiple key events, or mice , or even joysticks, and the serial use would require sound channels to operate.

OK, so the most efficient configuration many have been to drop the ACIAs, YM2149, and 6301 and use dual VIAs or CIAs for parallel port, midi, and parallel key/joystick I/O (with some added overhead to the 68k) while allowing the same chipset to be used for an external serial keyboard/keypad using a separate/modified driver. (assuming there's enough parallel lines on 2 CIAs or VIAs to manage all the I/O used by the 6301+YM2149, otherwise you could add a PIA -which should be significantly cheaper than a 6301 -and could be removed on models using an external keyboard exclusively; I think 2 CIAs, or at least 2 VIAs would be enough to cover all the I/O lines needed in place of the YM2149+6301)

 

Perhaps they were originally aiming at a separate keyboard... as it was it wasn't until '87 that the higher-end MEGA model featured such, so it's a bit moot. (other than avoiding any potential driver hickups or such related to the 2 different keyboard I/O mechanisms)

 

 

PWM would have been an option for implementing the sound output ( as it was on the Amiga ) - but if so it would have been best exposed as 16 bit stereo samples ( even if only 10-14 bits were valid ) in memory - That would have been something that would match the Amiga and also sell the Atari as a 'musicians machine' along with MIDI

Again, it's pretty flexible too, you've got a master clock for pulse generation and the effective linear resolution possible by dividing that by the effective linear sample rate and amplitude range. (ie if you have a 16 MHz master clock and you want 22 kHz output, that's 16000/22= 727, so the max at that rate would be 9-bits resolution, but at 9-bits you could have up to 31.25 kHz -higher res and sample rate than the Amiga, and if you wanted 10 bits you'd only get 15.625 kHz max)

One problem with using PWM is that the required master clock goes up by a power of 2 for each successive bit of resolution, so high resolutions using single PWM registers become impractical rather quickly, especially depending on the practical speed limits of 1985 (the Jaguar only used 26.6 MHz and 32x used 23.01 MHz almost a decade later) though one way round that is adding multiple PWM registers and that's what the Jaguar does to get 14-bits with just 26.6 MHz and still sampling/multiplexing at up to a linear ~207.8 kHz (adds 2 PWM channels at an effective 7-bit resolution -could have added to 16 bits if they halved that max sample rate to 103.9 kHz -but that would limit multiplexing/oversampling/etc). The 32x, GBA, and DS all opted for single register PWM (albeit with stereo -and the DS has 8 hardware mixed channels to a common 32 kHz PWM DAC -I believe it's only 9-bit output), unlike the Jag, and it's the simpler/cheaper option and almost certainly what the ST would have gone with. (you'd probably want to push for stereo as well if you really wanted to push the music side of things)

 

Hopefully, 16 MHz would have been realistic for the time, otherwise it would pretty much eliminate any potential advantage over the Amiga's audio, or rather any significant advantage as with 8 MHz you'd still have a slightly higher rate for 8-bit (31.25 kHz) and fairly decent 9-bit (15.6 kHz), but you probably wouldn't want to go any lower. (not only would you drop below 8 kHz for 10 bit, but you'd have significant PWM squeal problems) If they could have pushed 24 MHz, that would have been great though. (>23 kHz 10-bit or >46 kHz 9-bit)

One option for stereo might have been to still use a single register PWM circuit, but allow a mode with 1/2 the output sample rate and interleaved L/R toggled stereo (every other sample is on a different channel, so you'd need to mix accordingly -or preferably support it in hardware as 2 independent channels) as well as a full-speed mono mode. (2 separate 16 MHz clocked channels would be more useful though -especially from a music/professional perspective)

 

 

I wonder if Atari Corp engineers ever considered using PWM as such. (if not during the original ST's development, at least when it came to building the STe's DMA audio)

Link to comment
Share on other sites

PWM or a DAC - no real difference to the application programmer ( unless you are thinking of software controlled PWM which is a bit more insane ) - having more than 8 bits would make software mixing nicer though.

 

 

 

Also why are you so set on removing the 6301? Do you know how much it cost compared to the multiple chips you use in it's place - Also, how will you handle the mouse control without it? If you polled the mouse directly from the 68000 you would need a sampling rate of 2000Hz at least - with no leeway for missed events due to interupts.

 

Also if you look at the Atari documents the keyboard was designed to be used in multiple products - so I guess the external keyboard ( or even using it connected to the SIO of a 7800 ) would be possible with no real effort.

Link to comment
Share on other sites

Ah, OK... so that means the YM has 6 or 7 unused I/O ports on it as it is. (I wonder how the 68901's I/O lines are mapped/used)

 

I couldn't find a quick link to the schematic, but I'm pretty sure one port is the 8-bit printer port, and the other contains some floppy control lines and other functions. I think there may be one or two unused pins at best.

Link to comment
Share on other sites

Ah, OK... so that means the YM has 6 or 7 unused I/O ports on it as it is. (I wonder how the 68901's I/O lines are mapped/used)

 

I couldn't find a quick link to the schematic, but I'm pretty sure one port is the 8-bit printer port, and the other contains some floppy control lines and other functions. I think there may be one or two unused pins at best.

Ah OK... and and assuming most/all of the 68901 I/O lines were already used as well as the 6301 making use of most/all of its I/O ports, that would man you'd need more than the 36/40 I/O lines of 2 CIAs/VIAs to displace that. (like a simple PIA... though if there were a few unused lines among those I/O chips, it might have meant that 2 VIAs would have been enough to cover all that along with use of more 68901 lines if those 8 ports weren't fully used)

 

 

 

 

PWM or a DAC - no real difference to the application programmer ( unless you are thinking of software controlled PWM which is a bit more insane ) - having more than 8 bits would make software mixing nicer though.

Yes, true, but from an implementation/engineering standpoint it's different. From a programing standpoint, a PWM DAC could still matter as you could have a programmable sample rate and resolution selection dependent on the PWM master clock and not fixed like a resistor DAC -the programmer could choose to have higher resolution or higher sample rate as such, at least if the PWM circuit wasn't fixed to a standard output rate. (from what I understand, that's the way the simple PWM circuits are set up in the 32x and Game Boy Advance, both using directly PWM formatted samples, no PCM hardware interpretation to PWM and both set up by the programmer for the desired resolution/sample rate as such divided from the master clock -23 MHz in the 32x's case)

 

As for software mixing, using more than 8-bits may not have been the most perferable: pure multiplexing/interleaving of sample streams is simpler and cleaner than adding in many respects though you've got a bit less flexibility over software volume and such. (with adding you could easily have some quieter channels mixed with some louder/higher-res ones and still manage an output without overflow if careful enough, while interleaving fixes the output resolution per software channels) On the STe, Amiga, and others using resistor DACs as such, that doesn't matter as the max resolution is the same anyway, and thus multiplexing/interleaving is attractive other than the sample rate limits it imposes (that's one thing good about the 50 kHz rate of the STe since you can simply interleave 2 software channels at 25 kHz or 3 at 16.67 kHz -etc- on each hardware channel while the amiga only goes up to ~28 kHz), but with PWM, you can directly trade sample rate for resolution with the same potential for added channels (with plain saturation adding at least -more careful management could favor higher resolution mixing more), so you do have more flexibility. (given the simplicity and resource use of multiplex/interleave mixing, that would probably be preferred, and I think that also avoids the PWM squeal issue as you're technically using a high sample rate output due to the interleaved streams while using a single software mixed stream at similar effective rates would cause squeal below ~14 kHz)

Hell, one thing that's sometimes done to simplify mixing anyway is to cap the resolution a bit (ie instead of full 8-bit, it's cut to 7 bits or possibly less to avoid overflow and simplify mixing), so that would favor interleaving even more.

 

You don't necessarily have to play all interleaved channels at common rates either, but some added flexibility like interleaving 3 streams at 1 rate and 2 more at 1/2 that rate (all adding to the output sampling frequency) or various other configurations. (useful if some music/FX samples will always tend to be OK at lower rates and the added channels are desired)

 

With the STe you'd obviously be stuck with 50 kHz 8-bit for interleaving/mixing (max), but with 16 MHz PWM you could set it up as 62.5 kHz 8-bit or higher/lower depending on the output resolution or interleaving possibilities. For games especially you might want to sacrifice resolution for higher output rate ans more interleaving/multiplexing capabilities like 125 kHz 7-bit (easily interleave a lot of channels doing that -4 ~22 kHz channels plus 3 ~11 kHz might have been one interesting possibility -if you went for 8-bit then 3 15.6 kHz channels plus 2 7.8 kHz channels might be the alternative for games) while certain professional sound applications might want to use higher res like 31.25 kHz 9-bit or 15.6 kHz 10-bit.

If you had hardware stereo channels, technically you could have double of any of those cases if you didn't want to use full stereo as such (ie have funky left/right channels as the Amiga does -unless you have mono output where it's just 4 mono channels anyway ;)) or there's the option to use a cheaper method sticking to 1 PWM register and offering a L/R/center toggling mechanism for hard pan stereo or interleaved stereo at 1/2 the sample rate. (or even better, 2 hardware channels each with hard L/R/C panning on top of that -in either case you'd be panning all sounds being mixed to that hardware channel when hard panning -rather than high speed L/R interleaving- so that would need to be taken into account when using that, or of course you could pan one L and the other on R and treat it as a single stereo channel -if they could afford 2 hardware channels as such with panning flexibility or even just hardwired 2 channel mono and 1 channel stereo modes that would have been pretty useful, but a single channel would obviously be cheapest)

 

 

Also why are you so set on removing the 6301? Do you know how much it cost compared to the multiple chips you use in it's place - Also, how will you handle the mouse control without it? If you polled the mouse directly from the 68000 you would need a sampling rate of 2000Hz at least - with no leeway for missed events due to interupts.

I wasn't suggesting more chips, but less: ie instead of the ACIAs, YM2149, and 6301, just 2 CIAs or VIAs to do all of that (parallel keyboard/mouse) and use one of the VIA/CIA serial ports for external keyboard/keypad support. If there wasn't enough I/O lines on the 68901+VIAs/CIAs (VIA has more I/O lines) then you could still add a cheap PIA chip to supplement things (though that's the same footprint as the 6301, so component cost would be the primary advantage). It would be most significant if PIA was unnecessary though (just a 68901+2 VIAs -or CIAs- for all that I/O), with PIA the difference would certainly be less significant.

 

Hmm, wait a minute: if the 6301 normally managed keyboard AND mouse/joystick I/O, wouldn't that mean there's parallel I/O lines running from the joyports to the keyboard PCB and then running the serial line back to the ACIA? (that would explain why there's so many pins on the internal keyboard connector) Hmm are the joystick/mouse ports also located on the keyboards of models with detachable keyboards? (otherwise you'd need 2 separate 6301s and probably another ACIA... and maybe have some software issues) Having the mouse/joy ports on the keyboard is a pretty neat actually. (though if they went with the internal parallel interface for the early console models, they technically still could have left the joy/mouse ports on the main unit instead -especially if PIA wasn't ever used, otherwise chucking out PIA could be preferable in any case)

 

That's also a reason a model with no keypad using the historical ST chipset would be impractical if they wanted to add a separate keypad as you'd need another 6301 and serial input... or a parallel connector, though if they used all parallel internally and included an external keyboard/pad port as well, that could have been more favorable. (in either case, they could also have had a low-end model lacking the keypad and with no keypad accessory at all, and the keypad is really there for convenience -granted, it's really useful for an array of applications using fast numerical entry for business/programming/science/etc but for a low end "casual" form factor, it could certainly have been attractive -albeit moot if the PCB was too big to even facilitate a smaller case... until later models at least, and it wouldn't be until a bit later that it really hit the more "casual" or gaming-oriented mainstream market in Europe anyway)

 

 

Also if you look at the Atari documents the keyboard was designed to be used in multiple products - so I guess the external keyboard ( or even using it connected to the SIO of a 7800 ) would be possible with no real effort.

Is that the design they used in the XEGS?

 

Given what Marty said on the subject in a previous discussion, Tramiel was not interested in re-investing in GCC's other hardware stuff (especially after the ordeal with Warner to get MARIA and the 7800 games -Warner not including that in the sale of Atari properties and forcing GCC's R&D costs directly on Atari Corp), though using that keyboard interface might have been a rather attractive option for the 7800. (they would have had to implement an add-on module to support that though -and probably add a POKEY and more RAM -with POKEY's SIO used for the keyboard... and such an add-on could have been a general "booster" for games as well as 1/2 of a computer expansion -the keyboard completing the computer functionality) But that certainly would have needed a bit more R&D funding than the XEGS needed (and lacked the back library of software)... though it might have been a fair bit more worthwhile than the XEGS though, especially since the 7800 seems to have been selling a good deal better than the A8 or XEGS (the 7800 was at its peak in 1987 and 1988 where it had about 80% of its total sales in the US) and they could have had integrated single board "Super 7800s" with or without the keyboard but with the POKEY+RAM built in and a full computer package version adding the keyboard pack-in as well. It would have been less cost competitive than the vanilla 7800, but a good deal better than the XEGS (and cross compatible with the plain 7800, 2600, plus offering an upgrade path for the plain 7800)... and on top of that, the added RAM could have eased programming to some extent. (possibly allow full framebuffer graphics for the background rather than having to manage the scanline DL/DLLs directly every frame -so more favorably cross-platform computer development, though character mode platforms would be a different matter -and something the 7800 can replicate, but nor programmed in the same manner iirc- but on top of that, RAM means more fast memory to load graphics into for MARIA to use at high speed rather than accessing ROM directly -and also the potential to compress graphics in ROM and load them into RAM... plus use of floppy disks with the computer add-on ;) -or possibly casettes if pushed in Europe, and low-cost mass media is something neither Nintendo nor Sega offered in Europe ;))

 

OK, way off topic there, but that's something I hadn't fully considered as such before (I thought a bit about something like that to various degrees, but not all of those potential aspects -let alone the ST keyboard interface), maybe worth bringing up on the 7800 forum. :D (and I know Curt has that very nice add-on developed, but I was thinking on the 1980s potential side of things while Curt's add-on wouldn't have been really feasible until ~1990 at reasonable cost... though that still would have been significant -probably better options for a new console by then, or if they DID used the 7800 architecture, probably a faster CPU)

Edited by kool kitty89
Link to comment
Share on other sites

PWM or a DAC - no real difference to the application programmer ( unless you are thinking of software controlled PWM which is a bit more insane ) - having more than 8 bits would make software mixing nicer though.

Yes, true, but from an implementation/engineering standpoint it's different. From a programing standpoint, a PWM DAC could still matter as you could have a programmable sample rate and resolution selection dependent on the PWM master clock and not fixed like a resistor DAC -the programmer could choose to have higher resolution or higher sample rate as such, at least if the PWM circuit wasn't fixed to a standard output rate. (from what I understand, that's the way the simple PWM circuits are set up in the 32x and Game Boy Advance, both using directly PWM formatted samples, no PCM hardware interpretation to PWM and both set up by the programmer for the desired resolution/sample rate as such divided from the master clock -23 MHz in the 32x's case)

Even STe style stereo 8 bit output would be an improvement on the AY, and be more comparable to the Amiga and Mac sound. 10 or 12 bit by whatever means is easiest in h/w would be amazing in music apps for drum machine/sample playback.

 

Also why are you so set on removing the 6301? Do you know how much it cost compared to the multiple chips you use in it's place - Also, how will you handle the mouse control without it? If you polled the mouse directly from the 68000 you would need a sampling rate of 2000Hz at least - with no leeway for missed events due to interupts.

I wasn't suggesting more chips, but less: ie instead of the ACIAs, YM2149, and 6301, just 2 CIAs or VIAs to do all of that (parallel keyboard/mouse) and use one of the VIA/CIA serial ports for external keyboard/keypad support. If there wasn't enough I/O lines on the 68901+VIAs/CIAs (VIA has more I/O lines) then you could still add a cheap PIA chip to supplement things (though that's the same footprint as the 6301, so component cost would be the primary advantage). It would be most significant if PIA was unnecessary though (just a 68901+2 VIAs -or CIAs- for all that I/O), with PIA the difference would certainly be less significant.

Assuming you need an ACIA for MIDI anyway if you really wanted you could just use TTL latches for the keyboard :) On the ST the joystick/mice connectors were on the keyboard PCB though - so there was only the serial connection to the main board.

 

 

 

 

Also if you look at the Atari documents the keyboard was designed to be used in multiple products - so I guess the external keyboard ( or even using it connected to the SIO of a 7800 ) would be possible with no real effort.

Is that the design they used in the XEGS?

No (XEGS wasn't serial ) .. it was only a throw away comment about the 7800 , not a new secret part of atari history.

Link to comment
Share on other sites

Even STe style stereo 8 bit output would be an improvement on the AY, and be more comparable to the Amiga and Mac sound. 10 or 12 bit by whatever means is easiest in h/w would be amazing in music apps for drum machine/sample playback.

I think PWM is simpler/cheaper to implement in any case and has the interesting potential for flexibility I mentioned... even if they only managed a single 8 MHz PWM circuit, that could still have allowed 31.25 kHz 8-bit (or 15.6 kHz 9-bit), so better than the Mac and better the the Amiga could do with any 1 channel. (PWM does have disadvantages to good quality resistor DACs though, mainly the squealing issue at low sample rates -which isn't a real problem above ~14 kHz and/or with suitable filtering and there's other workarounds or such to avoid that -scaling lower rate samples to play above the problematic range or, again, I believe that interleave mixing has a similar result as samples played at the true sample rate -at least as far as squeal issues are concerned) There's a reason it's used as a low-cost audio option as such. (32x, GBA, DS, and I believe a fair array of other consumer electronics -especially cheaper ones)

 

Also why are you so set on removing the 6301? Do you know how much it cost compared to the multiple chips you use in it's place - Also, how will you handle the mouse control without it? If you polled the mouse directly from the 68000 you would need a sampling rate of 2000Hz at least - with no leeway for missed events due to interupts.

I wasn't suggesting more chips, but less: ie instead of the ACIAs, YM2149, and 6301, just 2 CIAs or VIAs to do all of that (parallel keyboard/mouse) and use one of the VIA/CIA serial ports for external keyboard/keypad support. If there wasn't enough I/O lines on the 68901+VIAs/CIAs (VIA has more I/O lines) then you could still add a cheap PIA chip to supplement things (though that's the same footprint as the 6301, so component cost would be the primary advantage). It would be most significant if PIA was unnecessary though (just a 68901+2 VIAs -or CIAs- for all that I/O), with PIA the difference would certainly be less significant.

Most/all of the console models of the ST seem to have had the joyports soldered to the motherboard (either on the side for 520s or underneath for STF/STe models), so did you mean the detachable keyboard specifically? http://www.atari-forum.com/wiki/index.php/Atari_ST_motherboard_revisions

 

Assuming you need an ACIA for MIDI anyway if you really wanted you could just use TTL latches for the keyboard :) On the ST the joystick/mice connectors were on the keyboard PCB though - so there was only the serial connection to the main board.

I was thinking of using a VIA or CIA serial port for MIDI instead (you'd have 2 VIAs or CIAs in place of the YM+ACIAs), but OTOH standardizing production and hardware implementation would probably be a good move too (standardized production, less headaches with software drivers -and programs using low level hardware acces), especially if you'd need a PIA to fully displace the 6301... and a single ACIA+6301 would be a smaller footprint than a VIA/CIA+PIA. One other consideration is that the 6301 was a newer process, low power CMOS chip and definitely had surface mounted variants available (so no speculation on Atari taking the initiative to consolidate chips themselves).

So in that respect: drop 1 ACIA and the YM2149 in favor of a CIA or VIA and keep one ACIA for the added serial port needed (3 serial ports total with VIA/CIA and 68901 for MIDI+keyboard)

 

Hmm, but in that configuration you again have an ACIA, a 3rd party chip only providing a single serial I/O port... so maybe a POKEY could have been attractive in that role too depending on existing stock and production costs vs the ACIA. Given you'd be solely using it for the serial I/O, any later production runs of POKEY intended for the ST (or the 7800 for that matter) could have cut the keyboard and POT lines for a 24 pin package using the same die (so same footprint as an ACIA) with the bonus audio capabilities as well. ;) (again, it might have even been desirable to retain 1 analog line for use as an audio ADC using fast pot scan -or 2 for stereo, though I'm not sure if you could cut it to 24 pins if you kept the 1 POT line let alone 2, though another 4 pins would be a small price to pay for a fairly decent audio recording capabilities... unless the separate audio DAC circuit could also have been used for recording)

Link to comment
Share on other sites

I think the Amiga was PWM in hardware as well - as I said the implementation isn't really important, just the fact that the sound is better than the AY :)

 

POKEY is likely way more expensive than an ACIA - and are you sure the fast pot scan is really going to be a good audio ADC?

I agree that a CIA would be nice to replace one ACIA+YM ( for the par. port and other controls ) , but ACIA+6301 is the cheapest/easiest solution for mouse/keyboard/joystick on a seperate board

Link to comment
Share on other sites

PWM or a DAC - no real difference to the application programmer ( unless you are thinking of software controlled PWM which is a bit more insane ) - having more than 8 bits would make software mixing nicer though.

Yes, true, but from an implementation/engineering standpoint it's different. From a programing standpoint, a PWM DAC could still matter as you could have a programmable sample rate and resolution selection dependent on the PWM master clock and not fixed like a resistor DAC -the programmer could choose to have higher resolution or higher sample rate as such, at least if the PWM circuit wasn't fixed to a standard output rate. (from what I understand, that's the way the simple PWM circuits are set up in the 32x and Game Boy Advance, both using directly PWM formatted samples, no PCM hardware interpretation to PWM and both set up by the programmer for the desired resolution/sample rate as such divided from the master clock -23 MHz in the 32x's case)

Even STe style stereo 8 bit output would be an improvement on the AY, and be more comparable to the Amiga and Mac sound. 10 or 12 bit by whatever means is easiest in h/w would be amazing in music apps for drum machine/sample playback.

They used a combination of software+hardware technique on the Amiga to get 14-bit audio from two 8-bit channels. Something like play upper 8-bits of 14-bits at volume 64 on one channel and play the lower 6-bits at volume 1 on 2nd channel. And since two channels get combined by hardware to one audio jack (either left or right), it sounds like 14-bit audio.

Link to comment
Share on other sites

I wonder if Jack Tramiel and co. would even want to have used a CIA. CIA is made by MOS technology which was owned by Commodore. Considering the history of Jack leaving Commodore at that time, I can imagine Jack did not want any chip made by MOS to be included in his new computer.

 

Robert

Edited by rdemming
Link to comment
Share on other sites

I think the Amiga was PWM in hardware as well - as I said the implementation isn't really important, just the fact that the sound is better than the AY :)

Interesting, I'd never heard that about Paula (I wonder about the STe or Falcon audio for that matter). I'd gotten the impression that the amiga used resistor DACs, though if it is PWM internally, or similar to such, perhaps it's an oversampling/interpolation type DAC (like delta-sigma DACs) rather than pure PWM (actually it would imply that's the case since the Amiga uses plain 8-bit PCM externally, so it can't be direct PWM, and technically I don't think oversampling DACs usually use PWM specifically but a related form of pulse density modulation).

The configuration used in the 32x and GBA is really bare bones and uses direct PWM formatted audio, no hardware interpolation of PCM, though it's pretty programmable as such as well (as I described with the master clock related resolution/sample rate flexibility). Both cases have DMA as well, but the 32x never used in in commercial games (and homebrew devs only just got it working recently) as the preproduction dev units had broken DMA and Sega never got around to revising that (the hombrew devemopments are based on an in-house Sega diagnostic cart with PWM DMA sample code -something that was never part of 3rd party SDKs), so all commercial stuff tended to use plain interrupt or polled FIFO driven audio instead.

There's a brief description of the 32x's PWM mechanism here (sans reference to DMA -Chilly Willy has since gotten the DMA working very well):

http://sega-16.com/forum/showthread.php?p=145090#post145090

32X PWM:

========

Two channels of audio, left and right. There is a "mono" channel, but all it does is set both the left and right channels to the data written into the mono channel. There is no volume control. The timing is set by setting a count, which is the main CPU clock divided by the sample rate. The left and right channels can be any value from 1 up to the count. So the "bits" of the channels isn't set like the other sound sources. The samples can be set using any CPU (including the Z80), or by DMA (I had problems using the DMA, so I'm not 100% sure if you really can use the DMA). The sound channels have a FIFO and status bits so that an even sample rate can be maintained, even with sloppy code.

 

Pros: You can have better than 8 bit samples, and high sample rates. Relatively easy to program.

Cons: No volume - like the YM2612, if you want volume, you have to do it in software. The sample format is a bit odd. You have to convert the samples into PWM format. For example, let's say you want to output at 22050 Hz. That gives a count of (NTSC) 23.01 MHz / 22050 Hz = 1043. This means that samples can be 1 through 1043, where 1 will give the lowest amplitude, and 1043 the highest. So you COULD make your samples 10 bits (10 bits gives 0 to 1023), or you COULD take four 8 bit channels and add then together (8 bits gives 0 to 255, so four of them gives 0 to 1020). That is generally what you see games do - add together multiple 8 bit channels in software, then offset them a little for the PWM output.

 

So 32X PWM can be rather flexible about the sample rate and samples. It can generate a decent output with little/moderate/heavy CPU overhead (depending on if you're adding channels and/or doing volume). However, it's even more odd than the CD audio. However, it's worth a little extra study.

 

 

 

As for the AY... technically speaking it could do better than an 8-bit DAC with the proper optimization/preprocessing, but most/all such algoritms were impractical back in the 80s (I knwo there's one demo on the MSX that uses a PCM stream preconverted and optimized using viterbi search), of course you'd still need the CPU resource to play it in either case without a DMA circuit attached to the AY itself. :P (and as you've mentioned before, the log format allows for better than 8-bit resolution even via simple 3 channel adding, but the aliasing from such still limits it to poorer than 8-bit linear SNR)

 

POKEY is likely way more expensive than an ACIA - and are you sure the fast pot scan is really going to be a good audio ADC?

I agree that a CIA would be nice to replace one ACIA+YM ( for the par. port and other controls ) , but ACIA+6301 is the cheapest/easiest solution for mouse/keyboard/joystick on a seperate board

You're probably right... the ACIA probably used less silicon and was produced in higher volumes, so even with POKEY in stock and later reduced in pin count (or even die shrunk) it may not have been enough of an advantage in in-house IP ownership to overcome the off the shelf price in any case. (being more expensive to manufacture wouldn't the the issue, but the actual market price of the ACIA vs the manufacturing cost of POKEY -even in a 24 pin package- would be the issue)

 

And no, I'm not sure the ADC would be good enough for audio... it would depend on the consistency/accuracy of POKEY and I'm not sure about that. THe 8-bit resolution and 15.7 kHz scan rate would be favorable though (if the scan rate wouldn't be higher for a 2 MHz part -or other external clock changes -I'm not totally sure how POKEY is clocked), so the accuracy would be the deciding factor. (I wonder if anyone's messed around with that on the A8)

 

 

 

 

PWM or a DAC - no real difference to the application programmer ( unless you are thinking of software controlled PWM which is a bit more insane ) - having more than 8 bits would make software mixing nicer though.

Yes, true, but from an implementation/engineering standpoint it's different. From a programing standpoint, a PWM DAC could still matter as you could have a programmable sample rate and resolution selection dependent on the PWM master clock and not fixed like a resistor DAC -the programmer could choose to have higher resolution or higher sample rate as such, at least if the PWM circuit wasn't fixed to a standard output rate. (from what I understand, that's the way the simple PWM circuits are set up in the 32x and Game Boy Advance, both using directly PWM formatted samples, no PCM hardware interpretation to PWM and both set up by the programmer for the desired resolution/sample rate as such divided from the master clock -23 MHz in the 32x's case)

Even STe style stereo 8 bit output would be an improvement on the AY, and be more comparable to the Amiga and Mac sound. 10 or 12 bit by whatever means is easiest in h/w would be amazing in music apps for drum machine/sample playback.

They used a combination of software+hardware technique on the Amiga to get 14-bit audio from two 8-bit channels. Something like play upper 8-bits of 14-bits at volume 64 on one channel and play the lower 6-bits at volume 1 on 2nd channel. And since two channels get combined by hardware to one audio jack (either left or right), it sounds like 14-bit audio.

The Amiga volume is logaritmic, so in practical use it's limited to ~12-bit as such. (you could also directly pair channels for stereo in pure linear 9-bit PCM)

 

I believe the STe can also be hacked for higher resolution by modulating the volume control of the National LMC 1992 audio control/mixing circuit. (not sure if that's log or linear or the number of steps possible though)

Link to comment
Share on other sites

The configuration used in the 32x and GBA is really bare bones and uses direct PWM formatted audio, no hardware interpolation of PCM, though it's pretty programmable as such as well (as I described with the master clock related resolution/sample rate flexibility). Both cases have DMA as well, but the 32x never used in in commercial games (and homebrew devs only just got it working recently) as the preproduction dev units had broken DMA and Sega never got around to revising that (the hombrew devemopments are based on an in-house Sega diagnostic cart with PWM DMA sample code -something that was never part of 3rd party SDKs), so all commercial stuff tended to use plain interrupt or polled FIFO driven audio instead.

How it's implemented is still not actually that important, even a 12 bit off the shelf DAC - ( or at worst an 8 bit R2R ladder ) would be ok. I'd expect something hardwired in the same manner as the mac, rather than the much more complex audio found in the Amiga.

 

The Amiga volume is logaritmic, so in practical use it's limited to ~12-bit as such. (you could also directly pair channels for stereo in pure linear 9-bit PCM)

I believe the STe can also be hacked for higher resolution by modulating the volume control of the National LMC 1992 audio control/mixing circuit. (not sure if that's log or linear or the number of steps possible though)

STe volume changes aren't as quick as on Amiga, so you can't use the same tricks ( plus there's only one left & one right channel - so no mixing )

On the Amiga you can definitely get 14 bits , although the linearity isn't perfect

Link to comment
Share on other sites

PWM... pfft.

 

C'mon. For starters it sounds shit unless you low-pass filter it to strip the residual fundamental frequency.

 

Secondly in software implementation it uses way more CPU than just playing samples back through a DAC.

PWM is fine at high sample rates for the output (also avoiding super aggressive low pass filters), and there's scaling or interleaving for composite high rate output avoiding squeal.

 

PWM is just a DAC mechanism... it's a good low-cost implentation option, especially if you want some added flexibility and a fully integrated/embedded sound circuit (ie no external DAC+IC for DMA/PCM management). Plain PWM DACs are what were used in Sega's 32x, the GBA, and currently in the DS among many other consumer electronic applications. You would definitely want to avoid low sample rate outputs though (ie if you wanted 11 kHz, scale it to 22 kHz output -or more likely, interleave 2 11 kHz channels as the preferred form of mixing for a 22 kHz output) while the Jag uses another method with paired PWM DACs hardwired to 7-bit output each and added to 14 bits and I believe accepting PCM in hardware rather than using PWM formatted samples -so closer to an oversampling/interpolating DAC. We're not talkign about anythign remotely close to software PWM on PCs/Spectrum, etc (which is extremely low quality and at low rates -you've go PWM on the level of a tens of kHz to maybe a couple hundred kHz in most cases with a resulting very low sample rate and resolution on the level of 4 to 6 bits at 2 to 4 kHz rather than MHz or 10s of MHz for hardware PWM which could reasonably allow both high resolution and sample rate depending on the speed of the PWM register used -even at only 8 MHz it would allow 31.25 kHz 8-bit resolution playback or 1/2 that rate at 9-bits while a 16 MHz one could mange 31.25 9-bit or 15.6 kHz 10-bit)

 

And yes, software PWM sucks both in quality and in terms of sucking CPU resource :P ... I would never suggest that as a good option (hell, the YM sound chip is a far better option than that), but I wasn't talking about software driven PCM at all, but a DMA set up or at least an embedded IC with an internal buffer and FIFO to greatly reduce the number of CPU driven updates needed. (ie rather than setting every sample, the CPU would do it every 32nd sample or so depending on the size of the buffer) A full DMA circuit would be better though, except a FIFO buffer could actually mean less bus time eaten by audio but given DMA audio bus usage is pretty negligible the CPU time needed to fill the buffer (vs setting a sample for DMA to read) wouldn't even be close to worth it. (unless you allowed DMA to load the buffer, but that's more complexity and more or less creating a primitive cache for audio for really negligible gain)

 

 

 

I wonder if Jack Tramiel and co. would even want to have used a CIA. CIA is made by MOS technology which was owned by Commodore. Considering the history of Jack leaving Commodore at that time, I can imagine Jack did not want any chip made by MOS to be included in his new computer.

 

Robert

But also remember that MOS chips were commonly licensed and had a tendency to be very favorable (in flexibility and cost) to license and second source in general (not sure if CBM changed that at all -obviously CBM specific chips would be a different matter like the ICs used specifically in the VIC/C64/Amiga/128/etc thoguh even that would change later on -the SID became available as an off the shelf part by the end of the 80s for example).

As such they'd never have to buy from MOS and could use various second sources making those chips already, let alone potentially licensing the chip themselves (as Atari Inc had already done for several MOS chips including RIOT and the 6502 core -which they were implementing in the JAN ASIC -single chip VCS- among other things -I think the slightly custom 6502C in the A8/7800/5200 was part of that too). Atari Inc hadn't already been using VIA or CIA though, only the 6507, 6502, RIOT (6532), and PIA (6520) supplied both from MOS and various second sources like Synertek.

 

 

 

 

 

 

 

 

The configuration used in the 32x and GBA is really bare bones and uses direct PWM formatted audio, no hardware interpolation of PCM, though it's pretty programmable as such as well (as I described with the master clock related resolution/sample rate flexibility). Both cases have DMA as well, but the 32x never used in in commercial games (and homebrew devs only just got it working recently) as the preproduction dev units had broken DMA and Sega never got around to revising that (the hombrew devemopments are based on an in-house Sega diagnostic cart with PWM DMA sample code -something that was never part of 3rd party SDKs), so all commercial stuff tended to use plain interrupt or polled FIFO driven audio instead.

How it's implemented is still not actually that important, even a 12 bit off the shelf DAC - ( or at worst an 8 bit R2R ladder ) would be ok. I'd expect something hardwired in the same manner as the mac, rather than the much more complex audio found in the Amiga.

Actually it would matter for the programmer... and it would matter to the engineers if they wanted to design a cost optimized and fully integrated DMA+DAC audio circuit.

From the programmer (and user) standpoint it would indeed matter if a plain PWM format was used as all samples would need to be converted to PWM formatting rather than PCM (not bare binary pulse values mind you -as that would take up far more space than PCM- but specific encoding that used words that decoded directly to PWM rather than normal signed/unsigned -or even sign-magnitude- PCM)

 

And the Mac actually had hardwired stereo with hardware volume, but only 1 L/R channel and hardwired to 22 kHz output but 1 channel was monopolized by the floppy motor control on early models. (and often used as 11 kHz by only filling half a line in the buffer iirc -so basically interleaving without 2 streams and thus leaving the 2nd interleaved chunk empty)

I was thinking even simpler than the mac in some respects with only 1 channel and no hardware volume at all (so more like the Tandy DAC, or Sound Blaster 1.x/2.x, or covox sound master -unpopular 8-bit DMA+PSG sound card introduced in '89 like the SB1), plus no interpolation of PCM to PWM, but only preformatted PWM specific samples. (but potential to have more flexible output due to how PWM is formatted -you could trade output sample rate for resolution rather freely but of course still have that limited relative to a single master clock on the order of several MHz -I can't see it being really useful much below 8 MHz, and 16 MHz would have been a lot better 24 MHz would have been awesome for the time and slightly better than what the 32x can do -albeit mono)

 

The 32x has hardwired stereo too, or rather a left and right channel that can be written to independently (almost always treated as a single stereo channel) and it also has a mono mode that just writes the same thing to both channels automatically.

 

 

STe volume changes aren't as quick as on Amiga, so you can't use the same tricks ( plus there's only one left & one right channel - so no mixing )

On the Amiga you can definitely get 14 bits , although the linearity isn't perfect

Hmm, that kind of sucks... I'd thought the STe's channels could be configured as individual channels with separate L/R/center hard panning each or leave both centered for mono or leave one L and the other R for full 1-channel (hardware) stereo... or if L/R panning was fast enough you could use 50 kHz on both channels and switch from L to R every other sample for 2 channel 25 kHz stereo output.

So it's more like the Mac and the Amiga then, hardwired stereo. (that's actually one of the unfortunate things about the Amiga's sound, it only really has 2 steroe channels which are fudged in most cases to be used as 4 separate channels -and for mono output they really are just 4 channels, and in many cases mono sounds much better than the stuck L/R channels- but had they allowed simple L/C/R panning on a per channel basis, that would have really made it more useful in stereo)

Edited by kool kitty89
Link to comment
Share on other sites

Hmm, this thread http://www.atariage.com/forums/topic/174193-is-it-possible-to-make-the-800xl-run-carts-only-without-the-pia-chip/page__st__25__gopid__2165054#entry2165054 got me thinking on POKEY again.

There might have been added utility of the POT lines by using them as digital I/O lines (omitting the analog circuitry and reading them as 8 digital I/O lines polled using fast POT scan or direct polling of the ALLPOT register), or a mix of digital and analog lines depending on the case. (possible audio recording or an analog mouse might have been reasonable -though if too inaccurate or costly compared to optical, that's obviously unattractive) The serial port could be used for connecting to MIDI or to the keyboard interface.

Hmm, I wonder if 2 POKEYs could have been even more useful as such if the POT lines and keyboard I/O (6 key input lines plus row/column strobe lines) could have been hacked (externally/in software) to be useful for analog and digital mouse/joystick I/O as well as multi-press keyboard operation -and serial I/O of course. (any pot lines still intended for true analog use would need to have the necessary caps/analog circuity included, of course) There's also many keys where you don't need support for simultaneous key presses and those that do might have been managed as separate parallel I/O lines or specific organization of the 2 sets of pokey key matrices. (1 key from each 64 key matrix could be pressed at a time)

 

Hmm, though that still couldn't replace all the I/O done by the YM2149 on top of the keyboard/joyport stuff, so you'd still need a PIA like chip on top of that. (but maybe 2 POKEYs and a PIA would be cheaper as such than even a VIA+ACIA+6301, especially since Atari Corp already had leftover stock as well as licensing/IP ownership -plus the bonus sound generation and possible ADC usage)

Edited by kool kitty89
Link to comment
Share on other sites

How it's implemented is still not actually that important, even a 12 bit off the shelf DAC - ( or at worst an 8 bit R2R ladder ) would be ok. I'd expect something hardwired in the same manner as the mac, rather than the much more complex audio found in the Amiga.

Actually it would matter for the programmer... and it would matter to the engineers if they wanted to design a cost optimized and fully integrated DMA+DAC audio circuit.

From the programmer (and user) standpoint it would indeed matter if a plain PWM format was used as all samples would need to be converted to PWM formatting rather than PCM (not bare binary pulse values mind you -as that would take up far more space than PCM- but specific encoding that used words that decoded directly to PWM rather than normal signed/unsigned -or even sign-magnitude- PCM)

Dont get the mechanism of PWM mixed up with how it was implemented in the 32X - it's pretty trivial to make a circuit that allows 0 to n-1 as the valid values rather than the 1 to n used on the 32X, or even one thats -n/2 to +n/2 -1. That's why I'm not hung up on how the audio is generated.

 

 

Hmm, this thread http://www.atariage.com/forums/topic/174193-is-it-possible-to-make-the-800xl-run-carts-only-without-the-pia-chip/page__st__25__gopid__2165054#entry2165054 got me thinking on POKEY again.

There might have been added utility of the POT lines by using them as digital I/O lines (omitting the analog circuitry and reading them as 8 digital I/O lines polled using fast POT scan or direct polling of the ALLPOT register), or a mix of digital and analog lines depending on the case. (possible audio recording or an analog mouse might have been reasonable -though if too inaccurate or costly compared to optical, that's obviously unattractive) The serial port could be used for connecting to MIDI or to the keyboard interface.

Hmm, I wonder if 2 POKEYs could have been even more useful as such if the POT lines and keyboard I/O (6 key input lines plus row/column strobe lines) could have been hacked (externally/in software) to be useful for analog and digital mouse/joystick I/O as well as multi-press keyboard operation -and serial I/O of course. (any pot lines still intended for true analog use would need to have the necessary caps/analog circuity included, of course) There's also many keys where you don't need support for simultaneous key presses and those that do might have been managed as separate parallel I/O lines or specific organization of the 2 sets of pokey key matrices. (1 key from each 64 key matrix could be pressed at a time)

 

Hmm, though that still couldn't replace all the I/O done by the YM2149 on top of the keyboard/joyport stuff, so you'd still need a PIA like chip on top of that. (but maybe 2 POKEYs and a PIA would be cheaper as such than even a VIA+ACIA+6301, especially since Atari Corp already had leftover stock as well as licensing/IP ownership -plus the bonus sound generation and possible ADC usage)

 

I very much doubt that - and again you're ignoring the mouse sampling problem - it needs to be sampled at least 2000 times a second. ( And the circuit board design would now be very messy - as the keys would be decoded by 2 seperate circuits ) An analog mouse would also likely cost more than the wheel mouse and 6301.

 

In the end I still can't see any reason to use POKEY in the ST - It has no redeeming features for the home/business machine that Atari made, and any custom silicon work to add things to it would have been far better used to make simple digital audio - as that would have tied in with the MIDI/music angle.

Link to comment
Share on other sites

ST/Amiga mice are shitty lo-fi affairs and probably only rated at 150 DPI or so.

 

As such you could probably get away with 250 samples per second or roundabouts and not lose out.

 

The ST docs spec the mouse at around 200 dots per inch , with a maximum movement of 10 inches per second, which requires at least 2000Hz sampling - and you can't miss anything as it's easy to mistake backwards/forwards movement. ( On the amiga h/w converts the values to a delta count )

Link to comment
Share on other sites

The reality is that you move an ST or Amiga mouse, or an early PC serial or even PS2 mouse at more than about half that speed, and it just goes apeshit.

 

Even modern optical mice once they're a bit old and sad will start misbehaving at such speeds.

 

Sure, the "ideal world" situation will see you needing that 2000 Hz sampling and returning true results, but in the reality of crud-infested mice working on dusty surfaces, you're going to get spurious readings that effectively reduce your precision anyway.

Edited by Rybags
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...