I was mostly the money, Mark Dusko was the actual hardware guy. He has his design up on his website, though. I am sure he would have no problem if someone wanted to make another run. I have not heard from him in some time, but his atariage handle is puppetmark. I would imagine that dropcheck or one of the other folks still producing boards would be able to handle it. I think a pass-through cart would be much better, and/or a PBI device. The CS8900A is hard to source in 5 volts. Lots of people seem to think that a 'all in one' with its own TCP stack is the way to go, but unless it has a memory mapped transfer bus it won't work very well. SIO is not capable of handling it. And, as you've seen, a dedicated single purpose stack is very doable on the eight bits, especially to support UDP.
My very first computer was a zx80. I wrote my very first program on it too, a BASIC version of "Lunar Lander" with an 'M' for the lander and a landscape of periods and dashes. Makes me mist up just thinking about it.
Fast forward to now - alongside all my atari stuff I have a giant box filled with Sinclair/Timex stuff.
If you mean in the modern development industry, then no, nobody really uses it for new development. There are nooks and crannies doing legacy maintenance that might have some pascal, but it would less than 1% of the market, probably much less.
C is worse as a beginner language than Java in that C will give you a gun and let you shoot yourself in the foot and not give you much indication what you did wrong other than "segmentation fault" or some such error. Plus if you want to work with strings.. Java is much easier there.
I like and use C a lot. It is powerful, but the price of that is it will not hold your hand in any way.
Yes Java is OO, but when you are just learning, you can put everything in a single class and it will behave similarly to a non-OO language.
I get it, but I don't agree. It's not about what's easy or safe, it's about understanding. I've been a professional developer for almost 40 years, and this is my opinion.
Yeah, I expected someone to say this. You're not wrong in fact, but I personally feel like Java and the other OO languages can put a burden of extra complexity in when all you are doing is just to try and learn programming basics, especially when your stated target is 2600 programming. I figured BASIC would be a good way to prepare for Batari. BASIC has this rep for 'spaghetti code' but let me assure you you can freely create pasta in any language, and people often do. Using a language that doesn't prevent you from doing it in fact is a good way to learn the importance of certain hygienic programming practices. Use of goto is not in and of itself bad, and there are situations even in modern languages where it is an appropriate choice.
Actually, I always recommend plan ANSI C as the proper introductory language for a serious computer education. If you learn C well, you will learn everything you'll ever need to know and stuff that most people don't ever know, and you will appreciate the modern languages much better.
Sincerely, I get what you mean. My problem is, I am illiterate when it comes to programming anything.
I live in a rural area in Ireland, there aren't a wealth of night classes available to me, so at least if I give this Java thing a bash, it may help me better to understand programming/coding in general, would you think?
At least if I do it then I may have a better understanding of the tutorials you mention above, no?
It's only ten classes, plus it will help keep me out of the pub on a thursday
I'm going to sign up and see how it goes, and will be back in ten odd weeks!
Well, Java is a fine language in general, but it is not applicable hardly at all to 2600 programming. As was mentioned, the very basic rock-bottom concepts like data, if/then,looping, etc. are able to be learned in any language.
If that's the only course you have, then sure give it a shot, but keep in mind that Java is NOT an introductory language, no matter what the colleges seem to think. It is an advanced subject, so if you find yourself baffled and overwhelmed it does not mean that you have some kid of problem understanding, it means that even basic Java it really hard without any prior experience programming. Or, maybe you have a knack for it and you'll do great, I don't know, but I expect you'll have some trouble. I do have some other suggestions for you:
1. Google for online courses. There are probably some free ones even, like 'introduction to programming' on you-tube or whatever.
2. Learn BASIC instead. BASIC was created to be easy to learn ( Beginners All-purpose Symbolic Instruction Code). If you have an actual 8-bit Atari, you can use that, or you can grab the Altirra emulator and use that.
3. You can grab tons of different kinds of BASICS for use on your home computer. This, for instance : http://www.nicholson.com/rhn/basic/. Assuming you're on Windows, you could even download the free Visual Basic Express stuff (which I think is now called 'Visual Studio Community' or something dumb like that). Tons of on-line course material on all of the BASICs.
I would not try Batari first unless you are a genius. The language is fine, but that 2600 machine is so bizarre and restricted and low-level it's like trying to program a toaster.
On the Ethernet subject, I can recommend one if you get to that point. Most convenient would be a CS8900A compatible as I already have a driver, but anything with an 8-bit mode would be fine. You may want to consider a chip that has its own TCP stack already on it, too, although that would be a big change. The crucial point there is that it's got to be interfaced via PBI or something, or even mapped in memory. Reading from SIO serial won't work well.
I'm keen on getting some help with the firmware. Is anyone capable/willing to take on the role of 'main firmware developer'? So I can focus on purely the hardware side.
It can be written in any language, but since code size needs to be small, and the existing firmware is written in it, I propose C. Debugging will be via gdb and a jtag connection to the eclaireXL.
The firmware currently provides the following features:
i) USB HID joystick and keyboard decoding
ii) SD card reading, fat decoding
iii) SIO drive emulation
iv) Cartridge emu setup
v) OS/BASIC rom loading
vi) Video settings
I'm in the process of changing the core to be more a 'modern system' with the 6502 and antic as additional bus masters. Previously the 'ZPU' was bolted on top of the Atari as an afterthought.
The plan is to use the VexRiscV CPU (can compile with GCC, debug via GDB) and a crossbar wishbone interconnect. All the atari custom chips, USB hardware, SD card, will be mapped into a large linear address space. Then the 6502 and antic will access this via an address translation layer. With possibly a 2nd PIA to allow the 6502 to access some of the additional hardware and settings (e.g. turbo!).
I'm busily working on the hardware changes for this, which will take some time to build. After which I'll need to port or rewrite the firmware for the new setup. I think it needs a significant rewrite to be 'good' but I don't think I have the time/motivation for that. Is anyone up for the challenge?
I doubt if any one person would be able to take all of this up. Phaeron, Flashjazzcat, the many excellent german & polish coders, all come to mind. I am actually very experienced with C and I've done some simplistic USB HID work before, so I might be able to help with item i. I would need a lot more details about the USB input architecture and probably would eventually need a test system.
Worrying about 80 column support is way down the list if you ask me.
Just as an aside, the original reason for 80 columns as opposed to other amounts was that the traditional IBM format punched card had 80 columns. Character TTYs and early monitors were basically still card punch machines at first, just with electronic data instead of actual punched cards, and so the 80 column display was an important feature.
I have a giant box full of sinclair stuff. Multiple zx80's and zx81's, some keyboards, some ram packs and memotech thingies, some wierdo breadboard things that claim to be modems, etc. A bunch of tapes too. I need to look through it all at some point.
Your routine is probably switching part of itself out. If any part of your program exists in the bank you are switching out, and you happen either be directly in that or use a library call that has code in that bank, then BOOM. Running it differently with different amounts of code present can re-arrange the way its laid out in memory, and that is why it works one way and not the other.
I remember being young and listening to my friends' dad who was all into crystal radios and ham radio and morse code. Him and his little band of ancient lamers kept trying to interest us in how cool it all was, producing much eyerolling on our part as we played missile command.
Yeah. I just had 'that' conversation with my grandson, showed him my stuff, and HE THINKS ATARI'S ARE COOL! Of course, he's only 5, so he thinks anything is cool. When he's 15 he will probably need medical attention from spraining his eyerolling muscle.