MAC/65 Assembler Editor and Atari 8-bit Machine Language Programming - Part 5

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

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

  • @davidarlington1206
    @davidarlington1206  2 หลายเดือนก่อน +2

    I make a coding error at 37:00 but correct it before video ends. Also I keep saying HEX $0D is 14, when it's 13 (I correct myself every time on this as well). And I may say Logical Shift Left a couple times when I mean Logical Shift Right. LSR and ASL always confuses me compared to ROR/ROL which are more obvious.

  • @brianwild4640
    @brianwild4640 2 หลายเดือนก่อน +2

    All welcome 80 minutes or 10 minutes not here to learn but something may surprise me. It is nice to see how different programmers do things Just here for the Atari

  • @mickster150arcade
    @mickster150arcade 2 หลายเดือนก่อน +1

    Looking forward to the variable episode. I am interested to see how that all works.

  • @brianwild4640
    @brianwild4640 2 หลายเดือนก่อน +2

    Lmao I was shouting at the screen dex before dey lol😂

    • @davidarlington1206
      @davidarlington1206  2 หลายเดือนก่อน +3

      Such are the perils of coding live! But I wouldn't do it any other way. I think it's healthy for people to see mistakes and how to find them and fix them rather than being perfect all the time!

    • @brianwild4640
      @brianwild4640 2 หลายเดือนก่อน +1

      @@davidarlington1206 so true

  • @Thesecret101-te1lm
    @Thesecret101-te1lm 2 หลายเดือนก่อน +1

    Great video as always.
    Q: Is there any like predefined label or similar in MAC65 that tells where free memory starts? I.E. the best place to start to assemble to while assembling to memory rather than to disk.
    Sorry if I mix things up, but I think there is an off-by-one error re the length of the code, as 5000 is where it start and the label end points to where the last instruction is, rather than the first address past the program.
    Also the explanation of DEX/DEY mixup seemed a bit odd. I might have misunderstood what you said, but it's not an off-by-one problem or similar but rather the problem is that X gets loaded with way different values depending on which string to print.

    • @davidarlington1206
      @davidarlington1206  2 หลายเดือนก่อน +1

      1) not in the source code as a assembler directive, but you can use the SIZE command from the MAC/65 Editor to get the last address used by MAC/65 and the top of memory. You just want to give yourself some room over what MAC/65 uses/needs, and under the top of available memory, keeping in mind MAC/65 also needs space for a symbols table past its shown usage. So far, we haven't had to worry about memory issues on a 48K machine! :)
      2) You're right, all my lengths are off by one, but the relative savings are the same.
      3) Ah, good catch. My issue was the position on the screen was coming out wrong, printing in screen memory 1-12 instead of 0-11. But I needed change the LDY #$0C (which was OK when we were counting up and that was our stopping point) to LDY #$0B so it prints from positions 11 back to 0. I'll mention this in a future video.
      Thanks for your comments and viewership!

  • @martinpanhuis4608
    @martinpanhuis4608 5 วันที่ผ่านมา +1

    I like the course very much and I have a question about changing the start address of the data and the program. I use the MAC/65 cartridge and as DOS I use MyDos 4.53. When I change the startaddress of the code from $5000 to $4000 the program assemble without problems but when I start Dos and then select option ‘M’ - Run at address and try to start from $4024 it immediately goes to DDT and doesn’t work. Does the Mac/65 or DOS use the memory in the $4000 range? When I move the program to $4800 it works fine.

    • @davidarlington1206
      @davidarlington1206  5 วันที่ผ่านมา +1

      I cover this exact problem in a later video but the short answer is that during assembly, MAC/65 can create a symbol table that runs right into and overwrites your code. You've discovered one way to deal with it already. Move your starting address higher. Another way is to assemble directly to disk
      ASM ,,#D:PROGRAM
      And remove the cartridge. I explain all this and a couple other ways to deal with this in later videos in the series.

    • @martinpanhuis4608
      @martinpanhuis4608 4 วันที่ผ่านมา +1

      When I startup the Atari with the Mac/65 cartridge and loaded with Mydos and look at DDT to memory around $4000, all memoryaddresses are filled with $00 (BRK). When I quit DDT and go to MyDos with the command DOS in the editor, Dos starts with the menu. When I go back to MAC/65 with Reset then the addresses around $4000 are filled with data from I think Dos.

    • @martinpanhuis4608
      @martinpanhuis4608 4 วันที่ผ่านมา

      I do the same test with Atari DOS 2.5 and no problem, the memory locations around $4000 are still filled with $00! It seems it has something to do with MyDos 4.53

    • @davidarlington1206
      @davidarlington1206  4 วันที่ผ่านมา

      @@martinpanhuis4608 I've been using SpartaDos but I do have MyDos 4.53 here so let me try that tonight and I'll report back to you. After you come back from DOS to MAC/65, what do you get when you type SIZE?

    • @martinpanhuis4608
      @martinpanhuis4608 4 วันที่ผ่านมา

      @@davidarlington1206 I will give you the answer tomorrow, I found an technical document of MyDos and it is described at page 9 of this document: when the menu is loaded it occupies the area from $294A to $4331. This is the area where I try to put the joystik4 program. seriouscomputerist.altervista.org/media/pdf/manual/MyDOS%204.50%20-%20Technical%20Manual.pdf