You missed the Atari 1200XL, the first of the XL line, the first Atari with 64K of RAM and a Help key. It also had four function keys that were not carried over to the rest of the XL line. Yes, many of the lower memory map locations were changed because the third and fourth joystick ports were removed and the memory locations were used for other purposes, such as an international character set. These changes were carried on to the rest of the XL and XE line. Because of slight incompatibility with the 400/800 computers and its 'high' price, higher than that of the C64, it didn't sell well and was canceled after just a few months. The cross-platform Atari800 emulator is the basis of the Altirra or Atari800Win emulator and the Atari800MacX emulator. In my opinion, Atari800MacX has the very best and most accessible user interface. The other versions leave you to have to remember control-key combinations for all the functions. Thanks for the Paddle tips. I did have at least one set of Paddle controllers for my old Atari 800 that I may be able to get back with my old Atari Home Computers, but this is good to know just in case. I did make my own light pen back in the day. I'm looking forward to getting the FijiNet module and the recreated MAC/65 cartridge for my old Ataris when I get them back (after thirty years) over Spring Break. The Ultimate Cart is another way to mount an SD card to your old Atari. Atari 8K BASIC saw ALL numbers as floating-point numbers, even the line numbers! But there was a bug in the floating point routines that made anything in Atari 8K BASIC notoriously slow. This is what quickly forced me to learn 6502 Assembly Language. Fortunately, Atari 8K BASIC has commands that make using machine language subroutine very easy. USR(ADR(ML$)) would jump to a machine language routine that was saved in ML$ after finding the address of that string. ATASCII uses all 256 8-bit binary combinations, so machine language can be represented directly as text. But strings in BASIC can be randomly relocated. That's why you have to request the string's address at the time of the call, and you have to be sure to use NO jump instructions in your code. Only BRAnch instructions are safe. MAC/65 is a much faster assembler that works on the Atari. It also allows macros. The cartridge version (a recreation of which is available from AtariMax) includes the excellent Dunion's Debugging Tool. MAC/65 is largely similar to the Atari Assembler/Editor cartridge, but it's more powerful and much faster. All of these clever graphics tricks are well-explained in the excellent book, De Re Atari. This is available, along with a BUNCH of other very useful documents AND software at AtariMania.
Was just strolling around on UA-cam while in some "nostalgic Atari 8 bit mood" and found this video - awesome! A lot of new stuff for me to dive into some day soon. Thanks & greetings from NL!
My first computer was an Atari 1200 XL. I also had a 600 XL, 800XL, and an XE game system and several hundred games. Used Atari basic all the time. I like that you could boot up Basic, basic games , and machine language games with a push of a button.
True, most Atari programmers didn't use C, but just to clarify, you could use C with the Atari, as you could with any 8-bit computer of the day. Compilers were available for the Apple II and the C64, as well. One such compiler that ran on the Atari was Deep Blue C, which as I remember, was released through the Atari Program Exchange (APX). This tended to carry titles from the late '70s and early '80s, since it was around during the Warner days. I was programming in C on my Atari in the early '90s (past its heyday), the 130XE, to be precise. The 128K RAM really helped, since I could set up a RAMdisk, and load a few of the tools I used into it, for faster access. I got a public domain compiler off the internet. It wasn't easy to set up, because the compiler tools and runtime took up quite a bit of disk space on a floppy. There were so many files to manage that I used MyDOS, for its subdirectory support. There wasn't much room for a large program, unless I used two drives. A common feature of all the 8-bit C compilers I know of is that they didn't compile to machine code. They compiled to p-code. The object code ran on a VM, which in my research I found out was an Intel 8088 emulator. The reason for this was that the compilers were based on Tiny C, which was originally written for the Intel processor. The main reason for the emulation, though, was that gave programmers a 16-bit stack (what the 8088 supported), as opposed to the 8-bit stack of the 6502. This prevented stack overflow on reasonably sized programs, but the emulation made them run noticeably slower than assembly programs (but faster than Basic). One might wonder how one would program in C on an Atari, since its keyboard didn't have curly braces. Atari compilers got around that by using two-character braces, $( and $), to substitute.
The Atari Program Exchange also had a very good Pascal program. I took a course in Pascal in college and unlike the other students who were using Apples or IBM PC's (or clone) and who's Pascal did not follow all the standards, Atari Pascal did. Like the C you mentioned or Atari Basic, Atari Pascal compile to P code. Also when it compiled you had to swap discs which was slow but thanks to having a Atari130, I used a ram disk that sped it up quite a bit. My favorite language was OSS's Action. It must faster than C or Pascal was and it compiles very quickly.
@@bjbell52 - I seem to remember trying a Pascal compiler on my Atari that I was pretty dissatisfied with. I don't remember what it was called, but I thought it was from APX. Maybe it was just public domain. A little trivia. When I was getting my CS degree in the late '80s, I knew a friend who had an Apple IIGS. We became roommates, and I saw him working on his CS assignments using a Pascal compiler he had. I thought it was impressive he could do his assignments on his own machine, given what he had (I knew other students with PCs and Macs were doing that sometimes). I was logging in to the school's Unix systems using a phone modem to do mine. I used a free 80-column terminal emulator called VT10Squared that used graphics mode 8. I found out more details recently about Kyan Pascal for the Atari through an interview with its creator on the Antic podcast. He revealed that Kyan was bought by Apple. They discontinued the other versions, and only distributed the Apple version. I thought this was odd, because I knew from my high school days that Apple already had a version of Pascal that ran on the Apple II, called Apple Pascal. It was a version of UCSD, and was self-hosted on its p-code system (it even had its own disk format). After hearing the story, I "kicked the tires" on Atari Kyan Pascal, trying out one of my old Pascal assignments on it, and it worked perfectly. I didn't have to change any of the code. A rather interesting feature was it had its own shell that looks a lot like Bash (except I don't *think* it has scripting capability). Anyway, it worked like Bash in the sense that every command you used with it was an executable on the distribution disk, and each one could take parameters from the command line. Its editor was vi, like on Unix, and it looked and responded to all the vi commands that I remember. This reminded me that whenever my friend worked with his compiler, he went into a shell that looked like this, and used vi to edit code. It was Kyan Pascal. What was even better was he was running it on a hard drive, so he didn't have to swap disks (though, the IIGS also had a RAMdisk, but it was rare if I saw him use it). The only difference I experienced between the Atari version and what he had was that he was able to work on an 80-column screen. I worked in the Atari's normal 40-column mode. I was running it in an emulator, which can emulate the XEP-80 (Atari's 80-column card), but I didn't think to try it. Re. Action!, I heard about it, but never tried it. I think back sometimes on the fact that I was cheap when it came to commercial software. This was partly because I didn't grow up with a lot of money. I tried to buy my software used whenever I could, or find free software or shareware. So, I see now I missed out on some good stuff at the time. Action! came out late in the life of 8-bit Ataris (late '80s). So, it didn't get used much. I've watched David Arlington's series on it. One reason it's faster is it produces native code. I also like to point out that like C, it was designed as a high-level language with low-level machine access (people keep pointing out, "It's more like Algol." I think they're talking about the syntax. I'm talking about the language design).
@@mmille10 The Pascal I was talking about came out of the APX and was not public domain. It stuck very closely to the standard Pascal definitions. Compiling was slow until I copied the 2nd disc to my ramdisk, then it was quite acceptable. I was lucky, I worked in a video store that sold Atari 800 software so I was able to buy my software at cost. Games that we sold for $50 I got for $20. That was nice. The problem with Action was that you couldn't compile and distribute your program which needed a runtime library to go with it, and they charged for that. I used it to do things I want to have like a player/missile graphics designer and a similar program for bit mapped graphics.
The clock speed of the Atari 8 Bit computers was 1.77 Mhz, quite faster then the standard 1 Mhz of the Apple II, and Commodore PEt and 64 computers of the day.
@@wackyworldofwindios3476 the C64 had the SID, a better sound chip, and full color selection for characters, foreground and background, everything else was better on the Atari
1.79 MHz half of the colour burst 3.57954 MHz shared between 65c02, Sally and ANTIC. Sally had a halt pin so the video text/graphical lines could be drawn with DMA to memory (display list). 1.77 MHz is PAL timing.
I bought an Atari 400 computer in 1982 when I really wanted to get an Atari 800 computer instead. I had bought an Atari 800XL in 1983 just about a month or so before the great North American Home Video Game Market Crash of 1983/1984. I wanted to learn how to program a computer primarily because I desired to make my own Atari video games. I have both Basic and Assembler Editor programming languages on cartridges. I would like to have more programming languages on cartridges too.
23:00 paddle return 0-228 You trigger reset of POKEY cap value to 228 and each scan line subtracts one until reaching 0 or min/max voltage of cap. DO NOT fry your POKEY or 6520, PIA (joysticks). They are extremely hard to find as it was used as sound chips in ATARI arcade machines. People keep stealing spares from home machines or 7800 carts to repair arcades that can use 1-4 chips. ATARI also made dual and quad POKEYs on single chips to cut costs
Btw you have misleading comment on the "STA $D01A" line. $D01A is not a shadow register but actual hardware register. ($02C8 is the shadow register of the OS for it, which gets copied to $D01A through OS interrupt routine).
Great stuff and a trip down memory lane, I hacked assembler on this thing until I could afford a PC.
Brilliant video! Now I know how to write C for my 130XE!
You missed the Atari 1200XL, the first of the XL line, the first Atari with 64K of RAM and a Help key. It also had four function keys that were not carried over to the rest of the XL line.
Yes, many of the lower memory map locations were changed because the third and fourth joystick ports were removed and the memory locations were used for other purposes, such as an international character set. These changes were carried on to the rest of the XL and XE line.
Because of slight incompatibility with the 400/800 computers and its 'high' price, higher than that of the C64, it didn't sell well and was canceled after just a few months.
The cross-platform Atari800 emulator is the basis of the Altirra or Atari800Win emulator and the Atari800MacX emulator.
In my opinion, Atari800MacX has the very best and most accessible user interface. The other versions leave you to have to remember control-key combinations for all the functions.
Thanks for the Paddle tips. I did have at least one set of Paddle controllers for my old Atari 800 that I may be able to get back with my old Atari Home Computers, but this is good to know just in case.
I did make my own light pen back in the day.
I'm looking forward to getting the FijiNet module and the recreated MAC/65 cartridge for my old Ataris when I get them back (after thirty years) over Spring Break. The Ultimate Cart is another way to mount an SD card to your old Atari.
Atari 8K BASIC saw ALL numbers as floating-point numbers, even the line numbers! But there was a bug in the floating point routines that made anything in Atari 8K BASIC notoriously slow. This is what quickly forced me to learn 6502 Assembly Language. Fortunately, Atari 8K BASIC has commands that make using machine language subroutine very easy. USR(ADR(ML$)) would jump to a machine language routine that was saved in ML$ after finding the address of that string. ATASCII uses all 256 8-bit binary combinations, so machine language can be represented directly as text. But strings in BASIC can be randomly relocated. That's why you have to request the string's address at the time of the call, and you have to be sure to use NO jump instructions in your code. Only BRAnch instructions are safe.
MAC/65 is a much faster assembler that works on the Atari. It also allows macros. The cartridge version (a recreation of which is available from AtariMax) includes the excellent Dunion's Debugging Tool.
MAC/65 is largely similar to the Atari Assembler/Editor cartridge, but it's more powerful and much faster.
All of these clever graphics tricks are well-explained in the excellent book, De Re Atari.
This is available, along with a BUNCH of other very useful documents AND software at AtariMania.
Was just strolling around on UA-cam while in some "nostalgic Atari 8 bit mood" and found this video - awesome! A lot of new stuff for me to dive into some day soon. Thanks & greetings from NL!
I have a 65XE and a souped-up 800XL with u1Mb, even with emulators, nothing like original hardware !
My first computer was an Atari 1200 XL. I also had a 600 XL, 800XL, and an XE game system and several hundred games. Used Atari basic all the time. I like that you could boot up Basic, basic games , and machine language games with a push of a button.
True, most Atari programmers didn't use C, but just to clarify, you could use C with the Atari, as you could with any 8-bit computer of the day. Compilers were available for the Apple II and the C64, as well. One such compiler that ran on the Atari was Deep Blue C, which as I remember, was released through the Atari Program Exchange (APX). This tended to carry titles from the late '70s and early '80s, since it was around during the Warner days.
I was programming in C on my Atari in the early '90s (past its heyday), the 130XE, to be precise. The 128K RAM really helped, since I could set up a RAMdisk, and load a few of the tools I used into it, for faster access.
I got a public domain compiler off the internet. It wasn't easy to set up, because the compiler tools and runtime took up quite a bit of disk space on a floppy. There were so many files to manage that I used MyDOS, for its subdirectory support. There wasn't much room for a large program, unless I used two drives.
A common feature of all the 8-bit C compilers I know of is that they didn't compile to machine code. They compiled to p-code. The object code ran on a VM, which in my research I found out was an Intel 8088 emulator. The reason for this was that the compilers were based on Tiny C, which was originally written for the Intel processor. The main reason for the emulation, though, was that gave programmers a 16-bit stack (what the 8088 supported), as opposed to the 8-bit stack of the 6502. This prevented stack overflow on reasonably sized programs, but the emulation made them run noticeably slower than assembly programs (but faster than Basic).
One might wonder how one would program in C on an Atari, since its keyboard didn't have curly braces. Atari compilers got around that by using two-character braces, $( and $), to substitute.
Wonderful information, thank you!
The Atari Program Exchange also had a very good Pascal program. I took a course in Pascal in college and unlike the other students who were using Apples or IBM PC's (or clone) and who's Pascal did not follow all the standards, Atari Pascal did. Like the C you mentioned or Atari Basic, Atari Pascal compile to P code. Also when it compiled you had to swap discs which was slow but thanks to having a Atari130, I used a ram disk that sped it up quite a bit.
My favorite language was OSS's Action. It must faster than C or Pascal was and it compiles very quickly.
@@bjbell52 - I seem to remember trying a Pascal compiler on my Atari that I was pretty dissatisfied with. I don't remember what it was called, but I thought it was from APX. Maybe it was just public domain.
A little trivia. When I was getting my CS degree in the late '80s, I knew a friend who had an Apple IIGS. We became roommates, and I saw him working on his CS assignments using a Pascal compiler he had. I thought it was impressive he could do his assignments on his own machine, given what he had (I knew other students with PCs and Macs were doing that sometimes). I was logging in to the school's Unix systems using a phone modem to do mine. I used a free 80-column terminal emulator called VT10Squared that used graphics mode 8.
I found out more details recently about Kyan Pascal for the Atari through an interview with its creator on the Antic podcast. He revealed that Kyan was bought by Apple. They discontinued the other versions, and only distributed the Apple version. I thought this was odd, because I knew from my high school days that Apple already had a version of Pascal that ran on the Apple II, called Apple Pascal. It was a version of UCSD, and was self-hosted on its p-code system (it even had its own disk format).
After hearing the story, I "kicked the tires" on Atari Kyan Pascal, trying out one of my old Pascal assignments on it, and it worked perfectly. I didn't have to change any of the code. A rather interesting feature was it had its own shell that looks a lot like Bash (except I don't *think* it has scripting capability). Anyway, it worked like Bash in the sense that every command you used with it was an executable on the distribution disk, and each one could take parameters from the command line. Its editor was vi, like on Unix, and it looked and responded to all the vi commands that I remember. This reminded me that whenever my friend worked with his compiler, he went into a shell that looked like this, and used vi to edit code. It was Kyan Pascal. What was even better was he was running it on a hard drive, so he didn't have to swap disks (though, the IIGS also had a RAMdisk, but it was rare if I saw him use it).
The only difference I experienced between the Atari version and what he had was that he was able to work on an 80-column screen. I worked in the Atari's normal 40-column mode. I was running it in an emulator, which can emulate the XEP-80 (Atari's 80-column card), but I didn't think to try it.
Re. Action!, I heard about it, but never tried it. I think back sometimes on the fact that I was cheap when it came to commercial software. This was partly because I didn't grow up with a lot of money. I tried to buy my software used whenever I could, or find free software or shareware. So, I see now I missed out on some good stuff at the time.
Action! came out late in the life of 8-bit Ataris (late '80s). So, it didn't get used much. I've watched David Arlington's series on it. One reason it's faster is it produces native code. I also like to point out that like C, it was designed as a high-level language with low-level machine access (people keep pointing out, "It's more like Algol." I think they're talking about the syntax. I'm talking about the language design).
@@mmille10 The Pascal I was talking about came out of the APX and was not public domain. It stuck very closely to the standard Pascal definitions. Compiling was slow until I copied the 2nd disc to my ramdisk, then it was quite acceptable.
I was lucky, I worked in a video store that sold Atari 800 software so I was able to buy my software at cost. Games that we sold for $50 I got for $20. That was nice.
The problem with Action was that you couldn't compile and distribute your program which needed a runtime library to go with it, and they charged for that. I used it to do things I want to have like a player/missile graphics designer and a similar program for bit mapped graphics.
@@mmille10 actually Action came out in 1983.
The clock speed of the Atari 8 Bit computers was 1.77 Mhz, quite faster then the standard 1 Mhz of the Apple II, and Commodore PEt and 64 computers of the day.
My Atari 8-bit ran circles around the com 64, in game play. Loading a game on Atari floppy disk took seconds, on com 64 took minutes +.
@@wackyworldofwindios3476 the C64 had the SID, a better sound chip, and full color selection for characters, foreground and background, everything else was better on the Atari
1.79 MHz half of the colour burst 3.57954 MHz shared between 65c02, Sally and ANTIC. Sally had a halt pin so the video text/graphical lines could be drawn with DMA to memory (display list). 1.77 MHz is PAL timing.
Thanks for sharing this. I missed the live version
I bought an Atari 400 computer in 1982 when I really wanted to get an Atari 800 computer instead. I had bought an Atari 800XL in 1983 just about a month or so before the great North American Home Video Game Market Crash of 1983/1984. I wanted to learn how to program a computer primarily because I desired to make my own Atari video games. I have both Basic and Assembler Editor programming languages on cartridges. I would like to have more programming languages on cartridges too.
23:00 paddle return 0-228
You trigger reset of POKEY cap value to 228 and each scan line subtracts one until reaching 0 or min/max voltage of cap.
DO NOT fry your POKEY or 6520, PIA (joysticks). They are extremely hard to find as it was used as sound chips in ATARI arcade machines.
People keep stealing spares from home machines or 7800 carts to repair arcades that can use 1-4 chips. ATARI also made dual and quad POKEYs on single chips to cut costs
This is freaking great! New subscriber!
I definitely fell for the Atari Macro Assembler once I got into it. I hope to be able to use that dialect with something like dasm.
I preferred OSS's Mac65.
Nowadays I use MadPascal for my hobby programming on this, my first computer.
Btw you have misleading comment on the "STA $D01A" line. $D01A is not a shadow register but actual hardware register. ($02C8 is the shadow register of the OS for it, which gets copied to $D01A through OS interrupt routine).