Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About fromo

  • Rank
    Combat Commando
  • Birthday 10/10/1970

Contact / Social Media

Profile Information

  • Location
    from Monterrey, Mexico
  1. You're welcome. I couldn't completely understand your code due to the spanish comments (as long as you understand them!) but here's how I would accomplish what you did: With two, nested loops: ldy #24 OuterLoop ldx #LIGHTCOLOR InnerLoop sta WSYNC stx COLUBK dex dex cpx #DARKCOLOR bne InnerLoop dey bne Outerloop 907265[/snapback] Bob : Very Impresive,,,,with only some lines you showed how to make a background like I wanted. So in order that you could understand a little bit what I tried to document "comments", in my program, I have just translated those comments to English (I hope that you could understand). I appreciate a lot the time that you are spending on me. Inicializar ldy #173 ;begin with light blue lda #0 ;load the Acumulator with zeros sta TIEMPO ;initialize TIME var with zeros Picture sty COLUBK ;apply background color inc TIEMPO ;inc, TIEMPO variable (width horizontal stripes) sty COLOR ;stores current color in COLOR variable ldy TIEMPO ;load "y", with TIEMPO value cpy #5 ;Did it pass five scanlines? bne no_decrementar ;NOP?, then, we must go to "no_decrementar" label ;YES?, the program flow continues here ;here (if we count 5 times, we must initialize TIEMPO) ;-------------------------------------------------------------------------- ; This little section of the program is to decrement the "y" register ; in order to apply a darknest color in the background ;-------------------------------------------------------------------------- ldy COLOR ;we rescue COLOR value in "y" register dey ;decrement the background color sty COLOR ;store the new color COLOR variable cpy #162 ;due we want that our color background from light to darknest ;we need to compare those values beq valor_inicial_y ;if the values are the same, then, we must jump to ;"valor_inicial_y" label ;because there we must initiate again our background color to ;the original blue color (173) ;if the values are not the same, then, ; the flow of the program follows here ;if you remember when we compare against value 5, was true ;I mean, TIEMPO value was equal to 5 ;then, we have to initialize TIEMPO variable to zeros lda #0 ;load the Acumulator with zeros sta TIEMPO ;store the Acumulator value to TIEMPO variable jmp no_decrementar ;I did not found another smart idea,,but we need to jump ;to "no_decrementar" label ;--------------------------------------------------------------------------------- ; This section "valor_inicial_y", does initiate the y register value ; with the color that we want to apply in the background of our Kernel ;--------------------------------------------------------------------------------- valor_inicial_y ldy #173 ;load y with the initial color value ;that we want to apply to our background lda #0 ;load A with zeros (to set TIEMPO) sta TIEMPO ;store that value in TIEMPO sty COLOR ;store y value in COLOR variable ;--------------------------------------------------------------------------------- no_decrementar ldy COLOR sta WSYNC inx cpx #192 bne Picture Thanks a lot for your help!!! My best regards Fernando
  2. 906934[/snapback] Bob : Thanks a lot for your comments, I would try to use the count down concept and also the timer, but regarding the way I am trying to do the things?, I mean, my goal was to see some blue stripes (horizontaly), over the background and I did it, but I don´t know if they were made in the right way? My best regards Fernando
  3. Hi! I am just about to finish Andrew's 2600 Tutorial, but I decided to start again, because I felt that I needed more confidence at the moment I were doing my firts programs, so I decided to go to Kernel section. I tried to modify a little bit the program that explain how to make the first Kernel, trying to make some blue stripes on the background, starting with light color blue, and ending with a little hard color blue, repeating in all the background, in order to share to you (the masters), this simple code (but great achievement for me), and know if I am in the right way. Warning,,,,I am aware that this code is far to be efficient, so I would like to know what tricks I need to be present in order to make efficient code. Sorry for the spanish comments that are included in my code, but Masters, is only a Kernel. My best regards Fernando Romo Kernel1.ZIP
  4. If you perform a store to address 2, the TIA will very helpfully stall the processor until the start of horizontal blank for the next scan line. Thus, much of the time you don't have to worry about exactly where the CPU is but merely ensure that you perform the "sta WSYNC" early enough. 904040[/snapback] Thanks a lot!, and sorry for my ignorance on this stuff , but what happens if we spend more than 76 machine cycles per line and we did not perform "sta WSYNC"?, maybe I am worrying to much and perhaps my programs won't need to be aware of those 76 machine cycles, but I would like to know if there is a problem if I use more than 76? My best regards Fernando Romo
  5. Pretty much only during your 192 scanlines of picture. Another common place to be concerned about where in the scanline you are is during your sprite-repositioning code, which may or may not take place during the visible picture portion of the frame. 904032[/snapback] Thanks a lot for your fast answer. As you could notice I am new in this subject, I imagine that in some part of 192 Scanline of Picture (block) there is a sub-block called sprite-repositioning section (if we want to name that section), so that place would be the place where we need to be aware of those 76 machine cycles?, as far I understood. But finally, into that section (192 Scanline of Picture), we need to count every machine cycle in order to compare with 76? My best regards Fernando Romo
  6. Hi! I have been reading this excellent tutorial, however regarding the 76 machine cycles that we have in order to draw a scanline, I would like to know if someone could tell me in what part of the programs, we need to be aware of those 76 machine cycles? In order to be more clear I have identified some parts or blocks that are included in our programs : StartOfFrame 1.- Start of Vertical Blank Processing 2.- 3 Scanlines of VSYNCH Signal 3.- 37 Scanlines of Vertical Blank 4.- 192 Scanlines of Picture 5.- 30 Scanlines of Overscan jmp StartOfFrame It would be usefull if someone could explain me in what part of the program I need to be aware of those 76 machine cycles My best regards Fernando Romo
  7. Hi! I am newbie in this hot stuff, really, finally I found a amazing information on Internet regarding how to program 6502 and TIA (make ATARI games). Congratulations to the person that took all the time in order to explain all the beatiful things about 2600. Actually, I am have not finished to read all this information, but I would like to know if finally it was possible to make a BOOK regarding all this excellent material? My best regards Fernando Romo
  • Create New...