My brother got an Atari 400, and the basic and assembler cartridges, for Christmas. I wrote a rhythm box program where the interface and controls were in Basic, and the play routine was in assembler. But, since there was no disk drive, only unreliable cassette, I had to copy the byte codes of the assembler routine on paper and enter them by hand in the Basic program as an executable string of characters. It took a few passes to get the assembler code right! :-)
That's awesome! Check out the second video in this series and I pretty much do the same thing by poking the data values from the assembly output into memory for Basic to use. Thanks for watching!
Also, your CLC is a label in your program, and the .END directive is optional. Your END is also a label in your program. Nice video, though. Few people know how to use the debug monitor, and this video was a great intro to it!
Four years later I'm diving into assembly and noticed the same thing. Part of the process (an enjoyment) of learning new program languages are debugging and noticing things like this. I thought I was crazy when I saw that CLC was a label and wondered why it was. This answers it. Fun stuff!
Thank you for your clear and understandable lesson. I was looking for a straight forward instructions on how to start using the Atari Assembler and I appreciate that NOTE that you need to assemble any changes first. I will be going on to the next lesson. This may be an old video but still have great value.
Excellent presentation! Love the quick hands-on intro. I grew up with an Apple ][ and have really been enjoying exploring other 8bit systems. The Atari in particular is one I wish I had picked up on back in the day. I could have learned a lot on this thing. Hey, better late than never! Looking forward to your other tutorials. Also love the fact that your using an original machine and cart, gives a good feel for the machine without actually having one myself.
I have a perfect condition, boxed copy of this cartridge and manual and I love it. I used it in the 80's for working on games, basic machine code routines and DLI's. These days (don't shoot me purists!) I prefer developing on my pc with Altirra. Mostly because 1) I'm back to being a 6502 asm / Atari 8-bit noob and Altirra's debug features are brilliant, and 2) I don't have the space to have my retro comps all set up all the time. I really enjoy this channel and you do a great job. Thank you!
Eastern Front by SSI , programmed by the famous Chris Crawford. I had it and it makes sense that it was made with this. I even think I heard Eastern Front was written in BASIC with assembly subs in it actually. Makes sense since it was a slow moving turn based game.
Thanks for watching. The device is called the Live Gamer Portable 2 Plus from Avermedia. It takes HDMI in so I have to use a composite to HDMI converter first which is not the best option. I will soon be using an SVideo to HDMI converter which will produce a cleaner signal.
Great intro to the Assembler cartridge! I picked one up at a retro gaming conference last year and haven't touched it. You've inspired me to dig it back out. Are there any old books on the Atari Assembler or Mac/65 that you'd recommend?
Scott Willrich I would recommend downloading a copy of both manuals for the Atari and Mac/65 Assemblers and printing them out. They are both invaluable
I really liked the ASM/ED cartridge. People derided it but the editor was very good and otherwise it all worked very well. Sure, it could have been faster and macros would have been nice, but it was clearly "good enough" to get real work done.
Great video. In the 80s I did a lot of BASIC programming, but assembly/machine language was always a mystery. Which videos are your follow up videos to this intro so I can watch in order?
Hi, so love the demo. I learned on this platform some 40 years ago and just purchased an as new 600 XL and on the lookout for the Assembler Editor cartridge. Can you please let me know the adaptor that you are using to capture the composite video output please. Cheers Steve
Nice video! I know this is not the fastest and best machine language tool but for learning purposes and small programs it is a great and easy to use tool!
Actually, you only left one space before the CLC so you DIDN'T clear the carry bit, it's a label, like LOOP is. Also, the END pseudo op is a label as well for the same reason. Line 30 was flagged as an error bexause #0 is not a proper op code. CLC is a perfectly proper label so the assembler didn't complain.
2:18 Real programmers write programs using 'cat'! 6:15 Writing assembly on the target computers seems a bit unnecessary these days. OldSkoolCoder uses "CBM prg Studio" for his videos ( ruclips.net/video/pLvBo3DbBFk/видео.html ). I'd guess something similar exists for Atari. Modern text-editor programs will be way more convenient to use. 9:53 Hexadecimal $1000 can't really be called "one thousand". 10:34 It seems like an unplanned coincidence that the Carry flag will be cleared by the CMP when branching back to the ADC instruction. The better plan is to always group the CLC and ADC instructions together for clarity. Doesn't the assembly program need an RTS or BRK to exit? END seems like an assembler directive. Does END need to be indented? 12:40 It seems like a bad idea for programming languages to have a hard dependency on spacing. The CLC instruction in your program is being interpreted by the assembler as a label instead of as an instruction and isn't executed. 15:22 It'd be better if instead of the 'P' register being displayed in impenetrable hexadecimal, it were broken down into the flags, like ---B--ZC for $33. 15:30 Since the CLC instruction is missing from the program and it happens to start executing with the Carry flag set (maybe because that's how the previous execution would have left that flag), the Accumulator goes from value $00 to $02 after the first ADC instruction.
@@ryanmichalski7420 The TI-84 Plus CE series, introduced in 2015, uses the Z80-derived Zilog eZ80 processor and is also still in production as of 2019.
I went back and looked at the code and you are correct! If you look at the output of the program you will see that the values in the accumulator go from zero to two because of this. Great catch!
@@eugenetswong I don't have an answer for this but it's interesting to experiment by setting the CMP #3 to CMP #1. Assemble and run it and you get the output you'd expect. Now trace it and the output is not what you expect at all! It does seem to skip the 1 in the beginning and then has to count all the way around from 2 to FF to get to 1. Interesting!
I never got used to this editor. too weird for my tastes. The BBC Micro is easier, but has it's weird ass syntax (no $ for hex for example) and I won't even go near the zx81
I love the background you give on these pieces of software, very interesting to learn alongside the actual assembly itself
My brother got an Atari 400, and the basic and assembler cartridges, for Christmas. I wrote a rhythm box program where the interface and controls were in Basic, and the play routine was in assembler. But, since there was no disk drive, only unreliable cassette, I had to copy the byte codes of the assembler routine on paper and enter them by hand in the Basic program as an executable string of characters. It took a few passes to get the assembler code right! :-)
That's awesome! Check out the second video in this series and I pretty much do the same thing by poking the data values from the assembly output into memory for Basic to use. Thanks for watching!
Also, your CLC is a label in your program, and the .END directive is optional. Your END is also a label in your program.
Nice video, though. Few people know how to use the debug monitor, and this video was a great intro to it!
I’m looking at it thinking the same. Thanks for answering my question one year ago :)
Four years later I'm diving into assembly and noticed the same thing. Part of the process (an enjoyment) of learning new program languages are debugging and noticing things like this. I thought I was crazy when I saw that CLC was a label and wondered why it was. This answers it. Fun stuff!
Thank you for your clear and understandable lesson. I was looking for a straight forward instructions on how to start using the Atari Assembler and I appreciate that NOTE that you need to assemble any changes first. I will be going on to the next lesson. This may be an old video but still have great value.
Excellent presentation! Love the quick hands-on intro. I grew up with an Apple ][ and have really been enjoying exploring other 8bit systems. The Atari in particular is one I wish I had picked up on back in the day. I could have learned a lot on this thing. Hey, better late than never! Looking forward to your other tutorials. Also love the fact that your using an original machine and cart, gives a good feel for the machine without actually having one myself.
I have a perfect condition, boxed copy of this cartridge and manual and I love it. I used it in the 80's for working on games, basic machine code routines and DLI's. These days (don't shoot me purists!) I prefer developing on my pc with Altirra. Mostly because 1) I'm back to being a 6502 asm / Atari 8-bit noob and Altirra's debug features are brilliant, and 2) I don't have the space to have my retro comps all set up all the time.
I really enjoy this channel and you do a great job. Thank you!
Thanks for watching! Stay tuned good things to come
Found this a year later and it’s great. Look forward to watching all your videos.
Welcome! and thank you
now i get it, thanks. i'll keep coming back to this. you earned a sub
Eastern Front by SSI , programmed by the famous Chris Crawford. I had it and it makes sense that it was made with this. I even think I heard Eastern Front was written in BASIC with assembly subs in it actually. Makes sense since it was a slow moving turn based game.
Great game. It was a classic wargame with a scrolling map that was much larger than the screen.
Watching on (just after) Easter the following year.
Keep it going ! This reminds me of Machine Language programming in college
I see a great channel in the making :) Great work! Can I ask what capture device you are using?
Thanks for watching. The device is called the Live Gamer Portable 2 Plus from Avermedia. It takes HDMI in so I have to use a composite to HDMI converter first which is not the best option. I will soon be using an SVideo to HDMI converter which will produce a cleaner signal.
Hans, thanks for pointing 8-bit and more out on Twitter! I just had to sub
Great intro to the Assembler cartridge! I picked one up at a retro gaming conference last year and haven't touched it. You've inspired me to dig it back out. Are there any old books on the Atari Assembler or Mac/65 that you'd recommend?
Scott Willrich I would recommend downloading a copy of both manuals for the Atari and Mac/65 Assemblers and printing them out. They are both invaluable
OSS: You might try Action! A fast compiled language in a super cart along with the editor.
Ahhh I learnt 6502 assembler using the Atari Assembler/Editor!
Amazing story, thanks for sharing!
Thanks for listening
***** **Video Notes** *****
1) Ctrl-1 pauses listing in Basic and in Assembly editor
Do you use any string packing of Atari Assembler? That's a great way to put little assembler code in the BASIC programs.
I really liked the ASM/ED cartridge. People derided it but the editor was very good and otherwise it all worked very well. Sure, it could have been faster and macros would have been nice, but it was clearly "good enough" to get real work done.
I AGREE
Mac/65 was my assembler back in the 80's
Great video. In the 80s I did a lot of BASIC programming, but assembly/machine language was always a mystery. Which videos are your follow up videos to this intro so I can watch in order?
I think I have a playlist for assembly language
Hi, so love the demo. I learned on this platform some 40 years ago and just purchased an as new 600 XL and on the lookout for the Assembler Editor cartridge. Can you please let me know the adaptor that you are using to capture the composite video output please.
Cheers Steve
Hi Steve, sorry for the late reply. At the time I was using a cheap SVIDEO converter from Amazon but now I use OBS studio.
Nice video! I know this is not the fastest and best machine language tool but for learning purposes and small programs it is a great and easy to use tool!
Yes it is a great tool albeit slow lol
Actually, you only left one space before the CLC so you DIDN'T clear the carry bit, it's a label, like LOOP is.
Also, the END pseudo op is a label as well for the same reason.
Line 30 was flagged as an error bexause #0 is not a proper op code. CLC is a perfectly proper label so the assembler didn't complain.
Nice Video.
I still use it.
2:18 Real programmers write programs using 'cat'!
6:15 Writing assembly on the target computers seems a bit unnecessary these days. OldSkoolCoder uses "CBM prg Studio" for his videos ( ruclips.net/video/pLvBo3DbBFk/видео.html ). I'd guess something similar exists for Atari. Modern text-editor programs will be way more convenient to use.
9:53 Hexadecimal $1000 can't really be called "one thousand".
10:34 It seems like an unplanned coincidence that the Carry flag will be cleared by the CMP when branching back to the ADC instruction. The better plan is to always group the CLC and ADC instructions together for clarity. Doesn't the assembly program need an RTS or BRK to exit? END seems like an assembler directive. Does END need to be indented?
12:40 It seems like a bad idea for programming languages to have a hard dependency on spacing. The CLC instruction in your program is being interpreted by the assembler as a label instead of as an instruction and isn't executed.
15:22 It'd be better if instead of the 'P' register being displayed in impenetrable hexadecimal, it were broken down into the flags, like ---B--ZC for $33.
15:30 Since the CLC instruction is missing from the program and it happens to start executing with the Carry flag set (maybe because that's how the previous execution would have left that flag), the Accumulator goes from value $00 to $02 after the first ADC instruction.
Is 6502 Assembly Language easier to learn compared to Languages such as python, javascript or C
It can be, really depends on the person. I find that some pick it up right away and others shy away from it lol
I recommend you stick to z80, then if you are feeling more ambitious, try 6502
@@AllGamingStarred Do you know if new Z80 cpu's are made
@@ryanmichalski7420 The TI-84 Plus CE series, introduced in 2015, uses the Z80-derived Zilog eZ80 processor and is also still in production as of 2019.
Can I ask what is the manual you got there?
The book is called "The Atari Assembler". I downloaded a PDF, printed and had it bound.
:) Very interesting topic. Assembly programmig ain't the easiest but it is the fastest! :)
Line "20 CLC" is being treated as a label "CLC" and isn't assembled as an opcode.
Good catch!
I went back and looked at the code and you are correct! If you look at the output of the program you will see that the values in the accumulator go from zero to two because of this. Great catch!
@@8bitandmore and @oktup, how did the accumulator go from 0 to 2 and not show up in the tracer as 1 in between at 15:18 ?
@@eugenetswong I don't have an answer for this but it's interesting to experiment by setting the CMP #3 to CMP #1. Assemble and run it and you get the output you'd expect. Now trace it and the output is not what you expect at all! It does seem to skip the 1 in the beginning and then has to count all the way around from 2 to FF to get to 1. Interesting!
@@kentwood9821 That's great info. Thanks.
Back in the 80's I used OSS Mac /65 on my Atari 1200XL. It's a much better assembler.
I never got used to this editor. too weird for my tastes. The BBC Micro is easier, but has it's weird ass syntax (no $ for hex for example) and I won't even go near the zx81
Mac/65 .Rom. seriouscomputerist.atariverse.com/media/rom/OSS%20Mac-65%201.02.rom
Are there any copyrights on the rom?
@@eugenetswong not that i'm aware of
@@AllGamingStarred thank you.
@@eugenetswong you are certainly welcome