Jump to content

Calphool9999

Members
  • Posts

    12
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

Calphool9999's Achievements

Space Invader

Space Invader (2/9)

6

Reputation

  1. So are they using a sync'd clock? In my project what I'm trying to do is take raw composite video from a TRS-80 model 1 and merge it as an underlay for the VDP. In that case, I don't have a clock signal to work with. I have to treat the video signal like any other composite video signal and get it massaged so that it will work as an input to the VDP. My current prototype is at github.com/calphool/TRS80GS
  2. Sorry for resurrecting an old thread, but in case anybody else is investigating this (I am for a TRS-80 Model 1 peripheral I've designed -- I'd like to be able to merge the TMS9918 video and the TRS-80's native video), the articles referenced above in the thread are the wrong dates from Radio Electronics. Although there's a video titler described, it's *not* one that uses the TMS9918. That came later, in November and December of 1985. It took me a while to figure that out, so I thought I'd save some future explorer the trouble. https://archive.org/details/radio_electronics_1985-11/page/n41
  3. ...you're reading facebook, somebody types something like: Yay (LOL), wtf? ...and you think they're doing indexed addressing against a memory location named LOL, using a new W register...
  4. Does anybody have an ASM routine for plotting to GR.7 or GR.7.5? The 4 pixels per byte of screen RAM seems difficult to manage... I was writing a USR() PLOT equivalent, and I can _mostly_ get it to work, but the masking stuff is confusing me, and I'm sure my ASM is slow. So I'd like to be able to do something like this: 10 GOSUB 30000:REM SETUP GR7.5 MODE AND PLOTXY ROUTINE 20 POKE 208,1:REM SET COLOR REGISTER 1 FOR PLOTXY and DRAWTOXY 30 X=USR(PLOTXY,0,0) 40 X=USR(DRAWTOXY,159,192) 50 X=USR(PLOTXY,159,0) 60 X=USR(DRAWTOXY,0,192) 70 GOTO 70 Once I get that working, I figure I'll add a BLITXY function that will blit an array of data onto the screen.
  5. So everyone, if you were starting a new action game, what graphics mode or pseudo-graphics mode would you build on? Ideally I would like to see something like a 160X192X8 color mode, but I don't think that's really possible based on what I've been researching. What's the best combination of high resolution and color you can get without resorting to text based modes? I'm going to build a soft sprite engine, and I want the sprites to move smoothly, which is hard with text based modes I think.
  6. I know this thread is old, but since I just wasted several hours on this, I figured I'd give back to the group. This is a known working block memory copy (compiles with MADS). I don't know how optimized it is. It's based on an example I found from D.W. Howerton. opt h- org $600 source = $cb; (cb - cc) dest = $cd; (cd - ce) length = $d0; (d0) jmp memcpy ; jump entry in case we change something .proc memcpy ; x=usr($600, source, dest, length) cld ; make sure were not in BCD mode pla ; pop number of arguments from USR() into accumulator cmp #3 ; compare accumulator to 3 stop bne stop ; lock up if we dont have 3 parms (safety mechanism... warm boot tolerant) pla ; pop hi byte of source into A sta source+1 ; store hi byte of source into ($cc) pla ; pop lo byte of source into A sta source ; store hi byte of source into ($cb) pla ; pop hi byte of destination into A sta dest+1 ; store hi byte of destination into ($ce) pla ; pop lo byte of destination into A sta dest ; store lo byte of desination into ($cd) pla ; pop hi byte of length into A sta length ; store hi byte of length in ($d0) pla ; pop low byte of length into A tax ; move A (low byte of length) into X bne start ; jump to start if X > 0 dec length ; subtract 1 from length start ldy #0 ; set Y to 0 move lda (source),y ; set A to whatever (source) points to offset by Y sta (dest),y ; move A to location pointed to by (dest) offset by Y iny ; increment Y bne next ; if Y<>0 then (rolled over) then still moving bytes inc source+1 ; increment hi byte of source inc dest+1 ; increment hi byte of dest next dex ; decrement X (lo byte counter) bne move ; if X<>0 then move another byte dec length ; weve moved 255 bytes, dec length bpl move ; if length is still positive go back and move more rts ; done .endp When you're relearning 6502 as I am, it's nice to have known working code (without macros or other fancy stuff) to start from.
  7. Hi everyone, on a slightly unrelated note, what's the best way to compile and debug ASM on Mac OS X? I've got WUDSN IDE, which is great, and I've got my .xex file, but I'm wondering what's the best way to debug. I'm pretty sure I can get the .xex file converted to DATA statements in Basic, but I'm not sure if there's a good way to run a monitor in Atari800MacX at run time... I'll play around with it, but if there's some way others are doing this, I'd appreciate a little direction to save time.
  8. I'll try it with one of the other emulators and see what happens. Do you happen to have a disassembly of the DATA statements?
  9. Synthpopalooza, I suspect that your article is actually the one I vaguely remembered, since it was dated from 1987, I would have been about 15 at that time, and I subscribed to Compute! back then. Unfortunately the code causes my emulator to kernel panic (Atari800MacX) when I run it. I checked all the checksum letters with the Compute! checker tool, and they all matched, so I'm guessing my emulator doesn't handle the code correctly, or perhaps the code is incompatible with Turbo Basic XL. JAC!, your routine does indeed work on my emulator. I'm examining the assembly trying to understand what it's doing right now (getting rid of the 6502 cobwebs in my brain).
  10. Thanks so much JAC! and Synthpopalooza. Clearly AtariAge is a very supportive community. I can't wait until I can give back!
  11. Hi JAC! It looks like it would be great, but for some reason the .ATR doesn't seem to work (I'm using Atari800MacX if that matters). When I look at the disk image I see that there is supposed to be an EXAMPLE.BAS file, but it doesn't show in MyDOS * and won't load in BASIC. Any ideas?
  12. Hello everyone, I used to spend hours and hours in front of my A8 when I was a kid writing basic and learning 6502 assembler. Although I've got a 65XE in the basement, prior to a few weeks ago I hadn't used it in years. Recently a friend of mine mentioned that his daughter (age 13) was taking a programming class, but was getting frustrated (it was a C# class) and wanted to drop the class. I offered to teach his two girls and my daughter Atari Basic instead, since it's a great starter language. My objective is to teach the girls enough to be able to do some simple video games. We're in week 4 right now, and they built their first BASIC program that does text graphics in GR.0 (a spinning text shape they designed themselves). I'm preparing to introduce keyboard monitoring (PEEK(764)) and positioning of text this week, and next week I'm going to start to transition them to Antic Mode 4 and character set redefinition (Antic Mode 4 is a text mode, and characters can be redefined as 4X8 with 4 colors). I'm thinking that it may take 2 weeks to cover that much stuff, so I'm looking ahead about 3 weeks and thinking about sound. I think I'm going to need to be do some assembler stuff, which the kids will just learn as a bunch of DATA statements, but I need a little guidance from the forum. Since I want to prepare them to create their own video game, I need to figure out a way to trigger sounds without affecting the main game loop. I seem to remember that there's some way to use the vertical blank interrupt to do background tasks (like sound). Does anybody remember what I'm talking about? Any assembler code reference you might know about? Thanks, Joe R.
×
×
  • Create New...