Commodore 64 Part 3: Intro to 6502 Assembly

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

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

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

    Great deep Tutorials ... for the first time in my life a programmer explains in an understandable way how programming really works... i hope some day you make more videos =) and thanks for sharing..

  • @ledi0078
    @ledi0078 7 ปีที่แล้ว +3

    Your explanation is very clear and easy to understand! Please make more videos!!!

  • @Njal55
    @Njal55 6 ปีที่แล้ว +6

    I was look forward to episode 4.

  • @TheUlMaster
    @TheUlMaster 8 ปีที่แล้ว

    muchísimas gracias por el canal ! he vuelto hace unos meses a programar en 8 bits con código máquina, pero c64 era desconocido para mí, soy conocedor de z80 de zx spectrum y msx y con tu canal ahora será magnífico hacerlo en c64 con 6502 gracias !! awesome work with the channel

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

    Wow that’s brilliant . I like the idea of writing the assembly on the actual 64 instead of on a pc/Mac . Thank you

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

    You make assembly seem so simple :) Looking forward to the next episode.

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

      It's literally almost the most simple thing you could do - which is what makes it hard to do it well. :)

    • @moebius435
      @moebius435 7 ปีที่แล้ว +3

      it's lots of fun. I used to make my C64 freeze and crash in lots of weird ways.

    • @sobreinquisidor
      @sobreinquisidor 6 ปีที่แล้ว

      Is assembly simpler than C? I'm still not sure. It depends on the machine I guess

    • @jeffzebert4982
      @jeffzebert4982 6 ปีที่แล้ว +2

      I think it's a LOT more fun, though, to make the C-64 do things like cycle through all the possible border colors and cycle through all the possible C-64 characters on the top left corner of the screen. To do the latter, here's what you type into the assembler:
      a 1000 (assuming you want to start your Machine Language program at Hex address 1000)
      inc $0400
      jmp $1000
      Back in BASIC, you run this program by typing in: SYS 4096
      Now to do the border-color-cycling:
      a 1000
      inc $d020
      jmp $1000
      Again, type SYS 4096 to execute the program.
      Another safe location to place your ML program in is Hex c000 (which in 49152 in Decimal). To run an ML program at that address, you type SYS 49152

  • @mmeewezen
    @mmeewezen 7 ปีที่แล้ว +6

    Thank you for these vids, i hope the series will continue!

  • @RemcovanZuijlen
    @RemcovanZuijlen 6 ปีที่แล้ว +3

    no-one mentioned it. But when you changed #$01 to #$10 (saying ten) it actually changed the value to 17 (10 in hexadecimal). Hence the border went to black and not to pink as some may expect.

    • @ChristianSasso
      @ChristianSasso 6 ปีที่แล้ว +1

      Actually hex 10 is decimal 16, but your point holds because the least significant nibble is zero, so the corresponding color will be black.

  • @FedorSteeman
    @FedorSteeman 7 ปีที่แล้ว +23

    Why did you stop making these videos?

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

      Good series. I'd like to see them continue, too.

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

    Great videos, too bad it's the last one. I've expanded my knowledge of the C64 a bit more, so thank you for that.

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

    It took me a while to understand this and then I found this video 😁

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

    WOW, I really like those 3 episodes of programming, specially ASM... Why did you stop???? You are awesome at teaching in this....

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

    Waiting a lot on next episode

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

    THE RETRO PROGRAMMER,
    ** --- What are the differences between 6502 assembly language, Z80 Assembly Language compared to Machine language? Are they the same thing or whats the differences?
    Basic Language has a compiler that converts the basic language into machine language code.
    A Language converts machine code into what?

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

      The assembler are using mnemonics for an instruction set with or without operands and with some addressing modes of a CPU for to build the operating mashine code. It convert mnemonics into opcodes. Each assembly language is specific to a particular computer architecture. Assembly language uses a mnemonic to represent each low-level machine instruction or opcode, typically also each architectural register, flag, etc. Many operations require one or more operands in order to form a complete instruction. Most assemblers permit named constants, registers, and labels for program and memory locations, and can calculate expressions for operands. Thus, the programmers are freed from tedious repetitive calculations and assembler programs are much more readable than machine code. Depending on the architecture, these elements may also be combined for specific instructions or addressing modes using offsets or other data as well as fixed addresses. Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging.

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

    Any chance you will continue this series?

  • @traustitj
    @traustitj 6 ปีที่แล้ว +2

    More episodes coming?

  • @jeffstack4217
    @jeffstack4217 6 ปีที่แล้ว +2

    You don’t even need to use RTS since there was no JSR command. A simple BRK would’ve sufficed.

  • @thebootrex5609
    @thebootrex5609 6 ปีที่แล้ว +2

    pleassseeee make more videos!!!

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

    Tried to run this on the final cart using g2000, got a syntax error

  • @86Carrera911
    @86Carrera911 4 ปีที่แล้ว

    What were you typing on? It didn't sound like a C64. Were you using an emulator and typing on a normal keyboard? Sounded like a Mac, possibly.

  • @bloodmapedit
    @bloodmapedit 6 ปีที่แล้ว

    Is it possible with Turbo Macro Pro to import pure code from memory, not just data?

  • @michalnemecek3575
    @michalnemecek3575 6 ปีที่แล้ว +2

    Pressing left and 3 together doesn't assemble the code. It's actually left and F3.

  • @BokanoiD
    @BokanoiD 8 ปีที่แล้ว

    I like the thoroughness of your approach, although I would've probably gone with a crossassembler like Kick Assembler instead of TMP, it's a lot friendlier to new users than using an assembler on the real machine. I also enjoyed the oopsie with color #$10 at the end :)

    • @bierundkippen720
      @bierundkippen720 5 ปีที่แล้ว

      Jason Turner What’s the difference, Jason? Could you explain, please?

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

      @@bierundkippen720
      Cross-assembly means assembling on one machine into the instruction set of another machine. He probably means getting a modern 6502 assembler for your X86 pc and assembling to 6502.

  • @AllGamingStarred
    @AllGamingStarred 6 ปีที่แล้ว

    achieved the same with final cart 3.

  • @RussellRiker
    @RussellRiker 5 ปีที่แล้ว

    More please Governor

  • @Calvinatorzcraft
    @Calvinatorzcraft 7 ปีที่แล้ว

    8*4096 isn't working. Using WinVice btw

  • @carstenhansen3979
    @carstenhansen3979 8 ปีที่แล้ว

    Found Hyper-Ass
    csdb.dk/release/?id=111993
    I have spend many hours and nights with that program but even more with the debugger.
    It surprices me that the program defaulted to 1000 and not c000

  • @tenminutetokyo2643
    @tenminutetokyo2643 5 ปีที่แล้ว

    I thought Indians created Silicon Valley. You mean we were lied to?

  • @hardyTRSI
    @hardyTRSI 7 ปีที่แล้ว +1

    actually it is:
    Return To Subroutine

    • @Tupster
      @Tupster 7 ปีที่แล้ว +1

      be careful with those well actuallys

    • @NicolaiCzempin
      @NicolaiCzempin 7 ปีที่แล้ว +2

      Actually it is ReTurn from Subroutine:
      www.6502.org/tutorials/6502opcodes.html#RTS

    • @michalnemecek3575
      @michalnemecek3575 6 ปีที่แล้ว +1

      Nicolai Czempin you're right, since it is used at the end of a subroutine, meaning you are returning from it.

  • @Calvinatorzcraft
    @Calvinatorzcraft 7 ปีที่แล้ว

    8*4096 isn't working. Using WinVice btw

    • @michalnemecek3575
      @michalnemecek3575 6 ปีที่แล้ว +1

      I got WinVice too and 8*4096 works fine. did you click the wrong EXE file?