Hello World in Assembly on the Atari 6502

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ต.ค. 2024
  • We explore how to write to the Atari screen in assembly language. By using Atari's IOCB (Input Output Control Block) we open the screen for writing. Learn how the IOCB works and why reading and writing to any Atari device is made easy.
    Code listing from this video:
    www.8bitandmore...
    Atari Roots
    archive.org/de...

ความคิดเห็น • 29

  • @CandyGramForMongo_
    @CandyGramForMongo_ 4 ปีที่แล้ว +8

    Where were you when I was 12? This is what I needed! Lol!

  • @ralphyrocket5770
    @ralphyrocket5770 5 ปีที่แล้ว +5

    inFKNcredible Videos!!!! I'll say it again.... it's been a LONG wait!!!!

  • @SergiuszRoszczyk
    @SergiuszRoszczyk 3 ปีที่แล้ว +1

    I keep fingers crossed for your come back 🤞

  • @semuhphor
    @semuhphor 4 ปีที่แล้ว +2

    I took a peek at the mac/65 manual. They have a very cool unary operator < and > to extract high and low order bytes from an address. Cool.

  • @zennmasterMZ
    @zennmasterMZ 5 ปีที่แล้ว +2

    I'm really liking the assembly stuff. You're getting the concepts and ideas across very effectively. Nice job!

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Michael Zenner thanks!

  • @robmcclendon6223
    @robmcclendon6223 3 ปีที่แล้ว +1

    Wow! I had no clue how much it takes to print a message on the screen using assembler language.

  • @Gitbizy
    @Gitbizy 2 ปีที่แล้ว +1

    Thank you very much for this video. Can’t wait to try this out myself. I learned the ropes of 6502 assembly a LONG time ago by reversing code using Omnimon. However I never used Mac/65 to code. This video and the Atari Roots PDF book you mentioned are very helpful.

  • @danzarz
    @danzarz 5 ปีที่แล้ว +2

    Thanks for the clear example of IOCBs :)

  • @GrowlyBear917
    @GrowlyBear917 5 ปีที่แล้ว +2

    3:48 11 character message plus EOL is 12 bytes, but not $12, that's eighteen! Twelve bytes in hex is $0C

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Growly Bear good catch! I noticed that after I posted the video and wondered who would notice lol... thanks for watching!

  • @Zankuho
    @Zankuho 5 ปีที่แล้ว +2

    This is most complicated 'Hello world!' I've ever seen.
    Also, it looks like BNE QUIT, JMP LOOP should be replaced with single BEQ LOOP (can't see how the program can get to error handler)

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Zankuhaaa! Yes the program really is not complete yet, there should be a BMI call after each JSR CIOV to handle and errors if the negative flag is set.... this is how the CIOV routine tells you there’s an error

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Zankuhaaa! This is pretty much what BASIC does under it’s covers

  • @eugenetswong
    @eugenetswong 4 ปีที่แล้ว +1

    For an Atari Assembly newb like me, this seems so big, magical, and powerful. I think that the feeling that I have now is the same that I felt, when I first saw and tried a Basic Hello-World.
    If I could turn the Basic version into a binary, then would the binary be bigger than an assembly version of a binary?

    • @8bitandmore
      @8bitandmore  4 ปีที่แล้ว

      Typically binary programs are smaller in size than native BASIC programs... thanks

  • @mrysSOFTWARE
    @mrysSOFTWARE 2 ปีที่แล้ว +1

    It seems very complex compared to a similar example on the C64 to output text. What is your opinion?

    • @8bitandmore
      @8bitandmore  2 ปีที่แล้ว +1

      There are other shorter ways to accomplish but this was to show how using standard ROM CIO calls

  • @zennmasterMZ
    @zennmasterMZ 5 ปีที่แล้ว +1

    Hey again - I was wondering if you had a link to a manual for Mac XE 3.41? I can't seem to find it, or even a discussion on the usual Atari forums about the differences from earlier versions. Or is the MAC65 1.2 manual close enough? Thanks again!

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      I don't have a manual or a link but I remember seeing or having a file that describes the enhancements / changes. I will have to hunt it down and let you know if I have it. It functions basically the same as 1.2 (as far as I can see).

  • @random_precision_software
    @random_precision_software 3 ปีที่แล้ว +1

    Hi I've just found your channel and would like to learn 6502 on Atari. I have an emulator but can't find MAC editor, any ideas?

    • @8bitandmore
      @8bitandmore  3 ปีที่แล้ว

      you can find several versions of it here:
      atariwiki.org/wiki/Wiki.jsp?page=Mac65

  • @semuhphor
    @semuhphor 4 ปีที่แล้ว

    Hi . Thanks for the vids. Very cool. So when a company wrote a game cartridge, did they use the IOCB structures to control the screen, or did they control the hardware directly?

  • @FelipeBalbi
    @FelipeBalbi 3 ปีที่แล้ว +1

    Cool video, thanks. I'm still pretty new at 6502 assembly, but looking at MAC/65 manual I saw it supports unary < and > to get high and low byte of operand. So, where you used #DEVNAM&255 you can use #>DEVNAM and likewise for high byte: #

    • @8bitandmore
      @8bitandmore  3 ปีที่แล้ว

      I wonder if Atari assembler supports those, if not it would make the code non portable.

    • @FelipeBalbi
      @FelipeBalbi 3 ปีที่แล้ว

      @@8bitandmore www.atariwiki.org/wiki/attach/Atari%20Macro%20Assembler/Atari%20Macro%20Assembler-OCR.pdf
      It seems like Atari Assembler uses "#HIGH DEVNAM" and "#LOW DEVNAM". Wonder if it would accept > and < and valid macro names :-p