Shop OBEX P1 Docs P2 Docs Learn Events
C64 Screen demo... — Parallax Forums

C64 Screen demo...

BamseBamse Posts: 561
edited 2008-01-27 20:07 in Propeller 1
Just the startup screen from the good old Commodore 64... wink.gif
Brings back a lot of memories...

I'll leave it up to someone else to implement the rest of the C64 functionality... rolleyes.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...

/Bamse
«1

Comments

  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-01-07 20:19
    Love it!

    I'm away from a prop at the moment, but looking at your spin code, do I see an entire CBM font there?
    Can't tell..

    I'm working on a full-screen editor based on the functionality of the 64.. Someone want to write a VIC emulation?
    <smirk>

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook
    Got an SD card? - PropDOS
    A Living Propeller FAQ - The Propeller Wiki
    (Got the Knowledge? Got a Moment? Add something today!)

  • BamseBamse Posts: 561
    edited 2008-01-07 20:40
    Howdy...

    It's the 128 chars from Set1, I don't think all 256 chars will fit since it's placed in a cog.
    However I can prepare Set2 (the one with lover case) and post it if you want them.

    All you need to do is cut and paste the set you like into your code...
    Or put it in main memory, it should be able to hold all 256 chars.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BaggersBaggers Posts: 3,019
    edited 2008-01-08 09:43
    What OBC? you mean like a C64 display driver? one that has sprites on too?
    Would that need the 4 colour character and sprite modes too?
    and not forgetting $d020 ?
  • BaggersBaggers Posts: 3,019
    edited 2008-01-08 14:20
    PS bamse, very cool, looks exactly like the original [noparse];)[/noparse]
    you gonna develop it more and add the sprites? or the 4 colour characters also?
  • BamseBamse Posts: 561
    edited 2008-01-08 15:52
    Glad you guys like it...

    The plan was to make a driver with a setting for the border ($D020) and then a color map for character color and background per character.
    However I ran out of cycles in the driver when I tried to add the color map.
    So now I have to learn how to write a video driver that uses more than one cog... wink.gif

    There are no immediate plans for sprites or 4 color chars right now.
    All I need for the Gridrunner driver is the color map.

    But once I get the Gridrunner game done, I would like to implement Sprites, 4 color chars and smooth scrolling...

    I have also attached the two sets of chars for C64, I'm using set 1 for the demo...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • JT CookJT Cook Posts: 487
    edited 2008-01-08 16:28
    Making a VIC 2 driver would be pretty doable, the only thing is for full VIC·2 compatability is you need to allocate 16k of RAM for VIC2 stuff like sprites and tiles. And you will definately need a multicog driver for full VIC2 stuff [noparse]:)[/noparse]

    The only problem I can think of is doing multiplexing since with a multicog render will be rendering different scanlines at different times. Other than though it should be cake.
  • BaggersBaggers Posts: 3,019
    edited 2008-01-08 16:37
    Would be a great start point for when prop2 comes along, and it can develop into a full C64 emulator [noparse]:)[/noparse]
  • JT CookJT Cook Posts: 487
    edited 2008-01-08 17:03
    Realisticly, you should be able to do the individual components of the C64 on the Prop, then combine them all when the Prop 2 comes out. Even doing the 64k of memory would be doable if you use the 512k card or even building a memory simulator host on the PC and using serial.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-01-08 19:13
    For some reason the "standard" changes didn't yield operation of this on a Protoboard/Demoboard
    last night... (of course I was pretty tired, so I might have missed something.)

    Should have just been a matter of changing speeds, three video pin settings, and tvport settings.

    What did I miss?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook
    Got an SD card? - PropDOS
    A Living Propeller FAQ - The Propeller Wiki
    (Got the Knowledge? Got a Moment? Add something today!)

  • BaggersBaggers Posts: 3,019
    edited 2008-01-08 19:33
    I know, there's already a C64 Tape emulator working [noparse]:)[/noparse]
    and if Andrew can modify his HSS should be able to have a SID too [noparse]:)[/noparse]
    and a VIC
    and with the 6502 emulator we've pretty much got all the pieces available.
  • BamseBamse Posts: 561
    edited 2008-01-08 19:46
    OBC,

    If you were really really tired you might have edited the wrong section or forgot to change the "tvport_mask".
    There is one section that have the standard port setting for the Hydra but the code is commented out...
    I did that in the comment section and explained most of these settings.

    Have a look further down in the code and also look for the two sections,
    initialization
    ' VCFG: setup Video Configuration register and 3-bit tv DAC pins to output
    movs VCFG, #%0000_0111 ' VCFG'S = pinmask (pin31: 0000_0111 : pin24)
    movd VCFG, #3 ' VCFG'D = pingroup (grp. 3 i.e. pins 24-31)
    movi VCFG, #%0_10_101_000 ' Baseband video on bottom nibble, 2-bit color, enable chroma on baseband
    .
    .
    or DIRA, tvport_mask ' Set DAC pins to output


    ================ and ===================

    ' The bitmask for the Hydra Video output pins
    tvport_mask long %0000_0111<<24

    I cannot think of anything else, it should be standard code...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BamseBamse Posts: 561
    edited 2008-01-09 20:44
    I would like to keep working on this driver and make it into a VIC II emulator...
    So if no one else beats me to it, I'll put that on my list...

    The priority so far is,
    1. Get the color map to work as I want to, this seem to require a two cog driver.
    2. Smooth scrolling sideways, up and down.
    3. More color modes and bitmap mode.
    4. Sprites.
    5. Some kind of "interrupt" functionality so things could be changed on the fly like forcing 16 sprites (8 on top part of screen and 8 on bottom) or similar.

    Any other functionality I left out ?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • JT CookJT Cook Posts: 487
    edited 2008-01-10 00:49
    The IRQ feature will be a little tough to emulate because a lot of C64 change the VIC settings on the fly. Like any scrolling game will have a status bar (that doesn't scroll) and the game field (that will scroll) and they will both use different tile sets that they swithc back and forth between. And of course the sprite modifying where you just reload the sprite registers to get past the 8 sprites per screen limit.

    The hardest thing about getting a VIC 2 emulator to work with a C64 emulator will be the display timing. I worked for almost a year on a C64 emulator for the PC (just for fun, unreleased) and I still couldn't get the timing right as a lot of games had messed up graphics.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-01-10 02:01
    Yes, I thought this problem looked familiar.
    (I was just too tired to put my finger on it the other night.)

    Here's the fixes for Protoboard/Demoboard users.

    Speed of course: (Change in both parts)
      _CLKMODE = xtal1 + pll16x
      _XINFREQ = 5_000_000
    
    



    Then in BAM_C64_screen_Video_01

    Change Line 224 to:
    tvport_mask                     long  %0000_0111<<12 
    
    



    Change Lines 250-252 to:
    movs    VCFG, #%0111_0000 
    movd    VCFG, #1 
    movi    VCFG, #%0_11_101_000  
    
    



    Change Line 304 to:
    movi    VCFG, #%0_11_011_000 
    
    



    Change Line 333 to:
    movi    VCFG, #%0_11_111_000
    
    



    Very pretty!

    Edit: Couldn't resist, attached with changes and friendly, flashing cursor.
    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook
    Got an SD card? - PropDOS
    A Living Propeller FAQ - The Propeller Wiki
    (Got the Knowledge? Got a Moment? Add something today!)

    Post Edited (Oldbitcollector) : 1/10/2008 2:55:38 AM GMT


  • BamseBamse Posts: 561
    edited 2008-01-10 21:24
    I guess a true VIC II emulator would be pretty hard to do...

    I remember wasting cycles with NOP to get the timing just exact to remove borders and get sprites all over the screen... tongue.gif
    So changing settings in the VIC about 3-4 times per scan line was not unusual...

    You might be a demo-coder on the C64 if your code have more NOPs than any other instruction... devil.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BaggersBaggers Posts: 3,019
    edited 2008-01-10 21:47
    Rofl yeah, I remember doing that, you could open side borders and top and bottom too [noparse];)[/noparse]

    You'd pretty much have to have Cycle correct timing on the 6502/6510 emulator cog and on the VIC II and be constantly reading the display registers too constantly, so to get a REAL C64 display emu it will be harder than just the graphics display mode itself.
  • BamseBamse Posts: 561
    edited 2008-01-11 20:46
    Arghhh, my C64 seem to be broken.
    I got a old C64 from E-bay to play with and it worked fine.
    Played with it for five-six hours and then set it aside...

    Today, a week later, the screen is black when I turn it on.
    The only "good" news about this is that I took the keyboard off and noticed that one of the memory chips got very hot.
    Now I need to find another "MN4164P-15A" and see if I can replace it...

    So I better get coding on this so we have a C64 Emulator for Prop II. wink.gif
    Just got one project I need to finish before I get going again...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • JT CookJT Cook Posts: 487
    edited 2008-01-12 17:41
    One thing it could be too is the switch, because on both my C64s a lot of times you have to kinda of jimmy the switch to get it to boot up.
  • AndreLAndreL Posts: 1,004
    edited 2008-01-15 23:33
    Bamse,

    Did you get a replacement chip yet? I have 2-3 extra C64 motherboards, if you have trouble replacing the chip, I can probably de-solder or just send you the whole MB and you can desolder what you need. If so email me and let me know, they are just sitting there since my C64 works [noparse]:)[/noparse] But, I don't dare touch it without touching metal first, the SID chips blow out of you even think about playing with the C64!

    Andre'
  • BamseBamse Posts: 561
    edited 2008-01-15 23:52
    Thanks Andr
  • BamseBamse Posts: 561
    edited 2008-01-16 05:28
    I'm so close to get my driver working in one cog...

    The deal is that I added code to get a custom palette per char so I can have separate background/foreground per char.
    If I uncomment the "rdword NTSC_User_Palette, color_data_work" instructions, I loose sync, this is the user palette.
    However if I use the 6MHz Xtal and run the Hydra @ 96MHz it works with this instruction...
    It is very tempting to right now to just go ahead and run the Hydra @ 96MHz... wink.gif

    Since I'm far from an assembler guru, is there anything that could be optimized in this loop ???

    user_tile_loop
                            rdbyte  current_char, char_data_work                    ' Get current char.
                            shl     current_char, #1                                ' Multiply by 2, for char offset                        
                            add     current_char, #cog_font                         ' Get address for the character to display
    
    '                       rdword  NTSC_User_Palette, color_data_work              ' Get current palette.
    
                            mov     r1, font_line                                   ' Get fontline.
                            and     r1, #%100  wz, nr                               ' Upper or lower char long?
                     if_nz  add     current_char, #1                                ' If upper, add one long.
                            movs    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer, current_char                    ' Modify the mov pixel instruction directly, set the Source field to the character address.
                            and     r1, #%0011                                      ' Mask off shift amounts to find correct byte in the char data. 
    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer          mov     r2, 0-0                                         ' Get the correct pixel data.                 
                            shl     r1, #3                                          ' Multiply by 8 since each byte is 8 bits.
                            shr     r2, r1                                          ' Shift desired pixels (byte) into position.
                            mov     NTSC_Pixel_data, r2                              ' Set pixel data, this is the calculated byte from #Number_one_Char
    
                            waitvid NTSC_User_Palette, NTSC_Pixel_data              ' Draw the tile.
                            add     char_data_work, #1                              ' Point to next char
                            add     color_data_work, #2                            ' Point to next palette
                            
                            djnz    tile_loop, #user_tile_loop                      ' loop through the tiles.
    
    



    By the way, I got a memory chip off my old C64, I'm going to "operate" on the almost working C64 later this week...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BaggersBaggers Posts: 3,019
    edited 2008-01-16 10:28
    bamse,

    remove the but where it gets upper/lower long from the inner loop, and store it in a temp var, that'll give you two instructions back, so you should now be able to add your rdword in again [noparse]:)[/noparse]

    let me know if it works, as I don't have a 5Mhz system set up at the mo, so can't test it.

    Jim.


                            mov     fontadd, font_line                                   ' Get fontline.
                            and     fontadd, #%100                                     ' find which long pixel data is in
                            shr     fontadd, #2                                            ' shift right by 2, to make 0 or 1
    
    user_tile_loop
                            rdbyte  current_char, char_data_work                    ' Get current char.
                            shl     current_char, #1                                ' Multiply by 2, for char offset                        
                            add     current_char, #cog_font                         ' Get address for the character to display
    
                            rdword  NTSC_User_Palette, color_data_work              ' Get current palette.
    
                            add      current_char,fontadd
                            movs    ixel_pointer, current_char                    ' Modify the mov pixel instruction directly, set the Source field to the character address.
                            and     r1, #%0011                                      ' Mask off shift amounts to find correct byte in the char data. 
    ixel_pointer          mov     r2, 0-0                                         ' Get the correct pixel data.                 
                            shl     r1, #3                                          ' Multiply by 8 since each byte is 8 bits.
                            shr     r2, r1                                          ' Shift desired pixels (byte) into position.
                            mov     NTSC_Pixel_data, r2                              ' Set pixel data, this is the calculated byte from #Number_one_Char
    
                            waitvid NTSC_User_Palette, NTSC_Pixel_data              ' Draw the tile.
                            add     char_data_work, #1                              ' Point to next char
                            add     color_data_work, #2                            ' Point to next palette
                            
                            djnz    tile_loop, #user_tile_loop                      ' loop through the tiles.
    
    .....
    
    fontadd    res 1
    
    
    
  • BamseBamse Posts: 561
    edited 2008-01-16 16:20
    Thanks Baggers, I should be able to try this over lunch which is in about 40 minutes... wink.gif

    I work from home and I try to do all the non-work stuff over lunch...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BamseBamse Posts: 561
    edited 2008-01-16 17:33
    Thanks Baggers, I finally got it to work !!!

    I lifted out both the font offset and the byte shift and got it to work...

    Gridrunner, here I come... wink.gif

                            ' Precalculate the font offset.
                            mov     font_add, font_line                             ' Get fontline.
                            and     font_add, #%100                                 ' Upper or lower char long?
                            shr     font_add, #2                                    ' Shift in correct offset.                                                                                                
    
                            ' Precalculate the byte shift.
                            mov     font_shift, font_line                           ' Get fontline.
                            and     font_shift, #%0011                              ' Mask off shift amounts to find correct byte in the char data. 
                            shl     font_shift, #3                                  ' Multiply by 8 since each byte is 8 bits.
    
    user_tile_loop
                            rdbyte  current_char, char_data_work                    ' Get current char.
                            shl     current_char, #1                                ' Multiply by 2, for char offset                        
                            add     current_char, #cog_font                         ' Get address for the character to display
                            rdword  NTSC_User_Palette, color_data_work              ' Get current palette.
                            add     current_char, font_add                          ' Add font offset.
                            movs    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer, current_char                    ' Modify the mov pixel instruction directly, set the Source field to the character address.
                            mov     r1, font_shift                                  ' Get shift amount for byte.
    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer          mov     r2, 0-0                                         ' Get the correct pixel data.                 
                            shr     r2, r1                                          ' Shift desired pixels (byte) into position.
                            mov     NTSC_Pixel_data, r2                             ' Set pixel data, this is the calculated byte from #Number_one_Char
                            
                            waitvid NTSC_User_Palette, NTSC_Pixel_data              ' Draw the tile.
                            
                            add     char_data_work, #1                              ' Point to next char
                            add     color_data_work, #2                             ' Point to next palette
                            
                            djnz    tile_loop, #user_tile_loop                      ' loop through the tiles.
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BamseBamse Posts: 561
    edited 2008-01-16 17:48
    And the "optimized" loop...

    Is there anything else in the user_tile_loop that could get optimized ???

                            ' Precalculate the font offset.
                            mov     font_add, font_line                             ' Get fontline.
                            and     font_add, #%100                                 ' Upper or lower char long?
                            shr     font_add, #2                                    ' Shift in correct offset.                                                                                                
    
                            ' Precalculate the byte shift.
                            mov     font_shift, font_line                           ' Get fontline.
                            and     font_shift, #%0011                              ' Mask off shift amounts to find correct byte in the char data. 
                            shl     font_shift, #3                                  ' Multiply by 8 since each byte is 8 bits.
    
    user_tile_loop
                            rdbyte  current_char, char_data_work                    ' Get current char.
                            shl     current_char, #1                                ' Multiply by 2, for char offset                        
                            add     current_char, #cog_font                         ' Get address for the character to display
                            rdword  NTSC_User_Palette, color_data_work              ' Get current palette, two instructions in between HUB instructions not waste cycles.
                            add     current_char, font_add                          ' Add font offset.
                            movs    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer, current_char                    ' Modify the mov pixel instruction directly, set the Source field to the character address.
                            add     char_data_work, #1                              ' Wait for movs above to finish, in the mean time point to next char.
    [img]http://forums.parallax.com/images/smilies/tongue.gif[/img]ixel_pointer          mov     NTSC_Pixel_data, 0-0                            ' Get the correct pixel data.                 
                            shr     NTSC_Pixel_data, font_shift                     ' Shift desired pixels (byte) into position.
                            
                            waitvid NTSC_User_Palette, NTSC_Pixel_data              ' Draw the tile.
                            
                            add     color_data_work, #2                             ' Point to next palette
                            
                            djnz    tile_loop, #user_tile_loop                      ' loop throug the tiles.
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • BaggersBaggers Posts: 3,019
    edited 2008-01-16 19:07
    excellent [noparse]:)[/noparse]
    I'll be looking forward to gridrunner [noparse]:)[/noparse]
  • BamseBamse Posts: 561
    edited 2008-01-17 00:23
    Time to close this thread down...
    Here it is, the final C64 Screen Demo with the flashing cursor... scool.gif

    That's it...
    Thanks everybody...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • VIRANDVIRAND Posts: 656
    edited 2008-01-17 04:56
    This old thread looks like it might be very interesting regarding C64 emulation:
    [noparse][[/noparse]url]http://forums.parallax.com/forums/default.aspx?f=25&p=1&m=130455
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-01-19 18:30
    Bamse said...
    Time to close this thread down...

    Not quite... :

    Do you mind if I expand on this as an alternative universal text driver?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook
    Got an SD card? - PropDOS
    A Living Propeller FAQ - The Propeller Wiki
    (Got the Knowledge? Got a Moment? Add something today!)

  • BaggersBaggers Posts: 3,019
    edited 2008-01-19 18:58
    OBC, wouldn't it be better to use one that has PAL & NTSC? since you want it universal?
Sign In or Register to comment.