Display Lists - Part 2

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ก.พ. 2020
  • We dive into Atari 8-bit computer display list interrupts which allow you to change specific parts of the display using small assembly language routines. The ANTIC chip along with the GTIA chip provide powerful graphics capabilities to the Atari programmer.
  • วิทยาศาสตร์และเทคโนโลยี

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

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

    By far, the best tutorial for learning about DLI that I ever seen.

    • @David-Cope
      @David-Cope 3 ปีที่แล้ว +1

      Done it and it's not easy.. I am lucky that I remember numbers.. in sequence.. I could memorise a complete 256 color scrolling DLI... Not so good now.. 55 yo.. Not Giving up tho.. DO NOT refer to De RE Atari.. Too advanced and more a reference guide..will just get you confused.. Just bear with me.. Page 6 Magazine from UK will help you as well.. Zengobag@gmail.com.. Link to Page 6 is this.. Just want to save you a lot of reading PDF files.. lol..ONLY way to read from site - I have all anyway and it was a local shop too.. lol..
      Try and find what you want.. First clue is issue 20.. 21 is when they introduce some fun stuff..
      www.atarimania.com/atari-magazine-page-6_12.html

    • @David-Cope
      @David-Cope 3 ปีที่แล้ว

      Past the point of caring... YOU will need me before I need you.. Fact about life that I know is true.. I have something that you would like. Knowledge..Go out and find it!!

  • @michaelstoliker971
    @michaelstoliker971 4 ปีที่แล้ว +3

    It would have been great having you as a presenter at the local Atari club meetings back in the day.

  • @billkendrick1
    @billkendrick1 4 ปีที่แล้ว +3

    As you briefly noted, DLIs can be used for more than graphics tricks. Anything that needs a high sample rate can use them... digitized sound sample playback, while keeping the screen on (ANTIC enabled), e.g. *during* gameplay.
    ...and reading digital input devices like mice & trackballs (TrakBall™) ;)

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

    Now it would be cool to walk through that demo you showed with the Rubik's cube and see how you break it down :)

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

    Correction: The cpu executed code during VBLANK, not HBLANK.

  • @robpalasz5683
    @robpalasz5683 3 ปีที่แล้ว +2

    I hope you're doing well. Thanks for the excellent tutorials! Please continue the series on Atari programming.

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

    One useful trick, since DLI routines need to be very short & fast, is chaining them.
    In other words, at the end of one DLI, have it update the interrupt vector to point to the next DLI, and so on!

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

      So, you are making update the "upcoming code" every time Atari finishes scanning a line?

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

      @@eugenetswong yeah. I admit I've not really done it much, except some experimenting, so I don't know what the practical limitations are ;)

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

      @@billkendrick1 every bit of info helps.
      I have come to believe that any action games require the use of interupts, & DLs, so your comment helps to cement that idea.
      I think that the limitations are the amount of time between scans.

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

      When I programmed Atari's back in the day, I did this exact thing. I made a table that the DLI indexed from for the next DLI task. Each DLI loaded the next vector in the table before it returned. Part of it was used for timers, counters, servicing inputs and things none display.

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

    For clarification, on line 230, the syntax directs the assembler to do a bitwise AND on the 16-bit address for the label DLI against the value $FF (255), to get the low byte of the address. The instruction at line 250 does the equivalent of a right bit-shift (dividing by $0100) on the same address (DLI), to get the high byte.
    Interestingly, the assembler uses big-endian format for its computed addresses (for labels). I say "interesting," because the 6502 uses little endian for addresses stored in memory. This is illustrated in the follow-up instructions, at 240 and 260, which store the low and high byte values.

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

    Fun little factoid: You're right that the Atari computers were the first microcomputers to use a display list, but Atari did not invent the technology. Doing my historical research, I found out that it looks as if the first display list technology was invented in an air defense system, used by the Air Force in the 1950s, called SAGE. They had raster displays (really oscilloscope displays) with light guns, the forerunners of light pens that we were familiar with in the 8-bit days. Operators would use light guns to pick out aircraft in a radar station's airspace, and bring up information on it, or they could use it as targeting information that would be relayed to our fighter aircraft. The isolation of which onscreen object was selected was coordinated using the system's display list, since it went off of where (or perhaps the better term is "when") the electron beam was on the display at the point when the light gun detected it.

    • @David-Cope
      @David-Cope 3 ปีที่แล้ว

      BUT.. could it display a single pixel??? Or is it just Asteroids "invented" in the same year..Go back and look at games.. It's Space Wars FYI!!!

    • @David-Cope
      @David-Cope 3 ปีที่แล้ว

      Play Duck Hunt on Nintendo.. That has a gun as well.. Get a grip on life and we are here to enjoy games - not listen to a Dork with facts. Go out and have some fun over the weekend.. It may improve your social standing in life.., OH YEAH - go now with Corona.. Give Trump what he want's... the spread of Covid-19 quicker!!

  • @sideburn
    @sideburn 2 ปีที่แล้ว +3

    I always wondered how they did that spinning Fuji with animated rainbow and then the bird flying past it effect even back when I first saw it as a kid. I still wonder how that was done!

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

    Excellent tutorial!😀
    I wondered why use EOR to set but 7 rather than ORA?
    I thought so you could run the main program again to disable DLI, but you airways did a warm start I the video🤔
    Love your work🤓👍🏾👍🏾

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

    love the level of detail in these videos...they made my short list of reference videos. If you are or ever wonder...what might I do a video like this on, how about programming spartados x from asm for doing things like open file, write file, read file, close file, etc. Anybody know of a good reference or video on that let me know.

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

      I actually have a video already created for that it talks about the input output control block look for the hello world assembler language video and it talks about opening closing control blocks which is pretty much how you open and close files

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

      @@8bitandmore ok I will go looking for that.

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

    Ich habe zwar nicht alles verstanden , aber gut erklärt ! Benjy ! Wir waren damals noch nicht so weit , haben dann aber schnell gelernt ! Assembler ist einfach gut (cool) !

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

    Do you post your source code examples somewhere like Github? Great videos and I like your teaching style. You also have high production value with your display in a display and graphics. Great job!

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

      check my website www.8bitandmore.com

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

    I forgot that this isn't an exclusively Atari channel. :D
    [By the way, I left a comment on your previous video about making our own power supplies. I don't know if you saw it or not.]

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

      I must have missed the comment on the power supplies, which video was it?

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

      @@8bitandmore th-cam.com/video/DnYN_DlZ02U/w-d-xo.html&lc=UgzogYFengKbUparNEp4AaABAg
      Do you get TH-cam alerts? I usually see who has replied, when I click/tap the bell in the top right of any page.

  • @Kamakazi_-tp2lb
    @Kamakazi_-tp2lb 3 ปีที่แล้ว +1

    after you complete this seris any chance you could do the same kind of thing for the atari 7800 home console ?, if so that would be cool. but i am enjoying this seris too great work and makes it easier to understand what is going on in my little 130 XE's mind so to speak.

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

    I submit VCOUNT is divided by 2 so it fits in a single byte for efficiency.
    Is the blue background color automatically pulled from a register each time the screen begins at the top again? I don't see any code intentionally changing it back to blue.

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

      The interrupt routine only takes place at locations specified by the display list instructions. I have a video that shows what the display list is and how it works. That's how you can control the color of individual lines.

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

    Who or what is actually resetting the color to blue again for the top half of the screen? After changing it to red in the middle of the screen, why doesn't it continue to be red when the raster beam returns to the top of the screen? I don't see anything in the code that does this. Is this something that the hardware does by default?

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

      The resident display list interrupt handler code is forcing the red change during each screen draw cycle

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

      The Operating System's vertical blank interrupt copies the values in the shadow registers (at locations 704 through 712) to the corresponding hardware color registers, so the top of the next frame starts again with that color.

  • @opentheskyy7
    @opentheskyy7 2 ปีที่แล้ว

    1:54 - what is the game?

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

      It's from a DEMO lol

    • @opentheskyy7
      @opentheskyy7 2 ปีที่แล้ว

      @@8bitandmore do you remember the name? There is awesome sky effect!