Jump to content

Scuttle130

Members
  • Content Count

    73
  • Joined

  • Last visited

Posts posted by Scuttle130


  1. Here is the next step in my 5200 programming adventure...

     

    I basically moves a sprite (in the form of a ship) across the screen from right to left until you hit the * or # key. (I dont remember which one I encoded but one or the other works :D )

     

    You can see that using labels doesn't work for identifing Sprites, just use the methods on the Command Reference. I pretty much tried everything else.

     

    Oh, and there are some funny formatting problems. Especially around the PUT statements... You can't have {SPACES} in the wrong place, or it won't compile right. That only took forever to figure out.

     

    Well, here is the code and the .bin file zipped for your enjoyment. I commented a little bit better this time to help understand what I think is happening (because maybe the computer thinks something else is)

     

    Oh, and if anyone can suggest a way to slow down the movement from right to left, that would be great...

    ship.zip


  2. I am "teaching myself" with the helps of many, many books and 5200Basic by Jeffry Johnson. I hope to be cool enough to make a good game like Adventure 2, but until then, I will have to figure this stuff out. I blame Andrew Davie for getting me interested in the ATARI programming with his forum "Programming the 2600 for Newbies." I will post my progress of learning as I go...I try to comment my code, but if someone has a question, please ask!!! I will explain what parts I understand. A lot of the next several programs are just tests to figure out how the 5200 will understand certain commands and the results. I am using 5200bas from

     

    http://lilly.csoft.net/~jeffryj/5200bas/5200bas.html

     

    and De Re Atari from

     

    http://www.atariarchives.org/

     

    and the emulator Rainbow 95 from

     

    http://www.chrislam.co.uk and click on Rainbow at the top

     

    you can get the 5200 ROM from

     

    http://www.atariage.com/5200/emulation/ind...l?SystemID=5200

     

    You can also get TASM from Dan B's 6502 Tech Page under Development Software

     

    http://www.atarihq.com/danb/6502.shtml

     

    I do welcome comments and suggestions on ways to make things more efficient.

     

    My first program is attached... I based it on Zork. You walk thru 6 rooms with the joystick. You are supposed to pick up a key in the Kitchen and the game ends when you walk back to the Bedroom. Everything works except I haven't figured out the numeric keypad part yet. I know how to stop it from continually scrolling, I just want to figure out a better way, probably with the next program. Until then, I hope those of you who have no idea about programming the 5200, and maybe some of those who do, will enjoy this.

     

    I cannot add attachments, so the listing will be a respond to this.


  3. Where/How can I get a copy of these?

     

    thanx

    mike

     

     

    Posted: Tue Feb 17, 2004 1:27 am Post subject: What titles would help fill out the 5200 library?

     

    --------------------------------------------------------------------------------

     

    In the past few weeks I've converted:

     

    Chess

    Crystal Castles

    Jawbreaker

    K-Star Patrol

    Pastfinder

    Tapper

     

    Plus one game I cant mention yet


  4. They have the McDonalds we are the McDowells. They have the golden archs, we are the golden arcs. We both have all beef patty, special sauce, lettuce, and cheese, but they have the sesame seed bun. Our buns have no seeds on it.

     

    Bug, Knat, Bug, Knat? Is there a similarity here? I think so...

     

    (Does this sound like Tetris and AtariTris? And wouldn't it be fun if everyone held conversations by quoting movies?) 8)


  5. I have been easily able to program 32k bin files into the EPROM. The problem I do have is the 5200 won't accept EPROMs programmed with 16k bin files. Any one run into this problem and know how to fix it?

     

    Thanx! 8)


  6. Make sure you have GTIA pluged in the right direction. Make sure you connect the black ground from the sound input to each of the chroma/lumina/svideo parts, make sure you have the correect order for the C/L/SVid inputs on the Mod chip connector. I plugged the sound and the s-video into the tv set, and it worked, skipping the chroma lumina all together.

     

    best i can do...


  7. I thought it would be too, but when I cracked my 4 port open to install the Chroma/Luma S-Video mod, I checkout the PCB number...which took a little bit (a minute or two) since the top PCB number was never etched in, but on the back, it listed a different PCB number than the CA018087. I check the serial number...no asterick!!!

     

    So now i began to wonder...maybe it was just the first generations of 5200's and the revised the PCB several times before they finally went into production on the asterick model, and then the 2 port.

     

    Second, maybe someone switched my PCB, probably not...to much work.

     

    Third, I wonder how many people got ripped off when the computer store realized the 4-port did not need modification for the VCS adapter, but charged the 80 bucks anyway?

     

     

    You know, nanoseconds laugh at milliseconds for being so slow... :D


  8. Can anyone figure out what I am doing wrong here?

    Or does anyone have a way to make this more efficient?

     

    ; Ship Version 1.0

    ; Subsequent versions will allow additions of capabilities

    ; A learning objective

     

    processor 6502

    include "vcs.h"

    include "macro.h"

     

    ; Variables

    SEG.U variables

    ORG $80

     

    shipx ds 1

    shipy ds 1

    visibleship ds 1

    shipbuffer ds 2

    shipdirection ds 2

    SEG variables

    ; Program

     

    ; Clear RAM and TIA

    Start

    sei

    cld

    ldx $FF

    txs

    lda #0

    ClearMemory

    sta 0,x

    dex

    bne ClearMemory

     

    ; Initialization

    lda #$00 ; Set backgound color to black

    sta COLUBK

    lda #$1C ; Set ship color to yellow

    sta COLUP0

    lda #2 ; Set ship x position

    sta shipx

    lda #80 ; Set ship y position

    sta shipy

    lda #%0001 ; Set ship facing up

    sta shipdirection

     

    ; VSYNC time

    Main

    lda #2

    sta VSYNC

    sta WSYNC

    sta WSYNC

    sta WSYNC

    lda #43 ; Set timer for VSYNC

    sta TIM64T ; Just another way to do Vertical Blank

    lda #0

    sta VSYNC

     

    ; Check joystick controls for movement

    lda #%00010000 ; Down?

    bit SWCHA

    bne SkipMoveDown

    inc shipy

    lda #%00001000 ; reflect ship graphics

    sta REFP0

    lda #%0001

    sta shipdirection

    SkipMoveDown

    lda #%00100000 ; Up?

    bit SWCHA

    bne SkipMoveUp

    dec shipy

    lda #%00000000 ; do not reflect ship graphics

    sta REFP0

    lda #%0001

    sta shipdirection

    SkipMoveUp

    lda #%01000000 ; Left?

    bit SWCHA

    bne SkipMoveLeft

    dec shipx

    lda #%00001000 ; reflect ship graphics

    sta REFP0

    lda #%1000

    sta shipdirection

    SkipMoveLeft

    lda #%10000000 ; Right?

    bit SWCHA

    bne SkipMoveRight

    inc shipx

    lda #%00000000 ; do not reflect ship graphics

    sta REFP0

    lda #%1000

    sta shipdirection

    SkipMoveRight

    lda #0

    sta shipbuffer

    WaitForVBLANKEnd

    lda INTIM

    bne WaitForVBLANKEnd

     

    ; Visible Screen Drawing

    ldy #191

    sta WSYNC

    sta VBLANK

     

    ; Start to draw screen

    DrawScreen

    sta WSYNC

    lda shipbuffer

    sta GRP0

    ldx shipx ; horizontal sprite check

    cpx #160

    bcc LT160

    ldx #0

    sta shipx

    LT160

    jsr PositionSprite

    CheckVisibleShip

    cpy shipy

    bne SkipVisibleShip

    lda #8

    sta visibleship

    SkipVisibleShip

    lda #0

    sta shipbuffer

    ldx visibleship

    beq FinishDrawScreen

    DrawShip

    lda #%0001

    cmp shipdirection

    bne DrawRightShip

    lda ShipUp-1,x

    sta shipbuffer

    dec visibleship

    jmp FinishDrawScreen

    DrawRightShip

    lda ShipRight-1,x

    sta shipbuffer

    dec visibleship

     

    FinishDrawScreen

    dey

    bne DrawScreen

     

    lda #2

    sta WSYNC

    sta VBLANK

    ldx #30

    Overscan

    sta WSYNC

    dex

    bne Overscan

    jmp Main

     

    Divide15

    .byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

    .byte 01,01,01,01,01,01,01,01,01,01,01,01,01,01,01

    .byte 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02

    .byte 03,03,03,03,03,03,03,03,03,03,03,03,03,03,03

    .byte 04,04,04,04,04,04,04,04,04,04,04,04,04,04,04

    .byte 05,05,05,05,05,05,05,05,05,05,05,05,05,05,05

    .byte 06,06,06,06,06,06,06,06,06,06,06,06,06,06,06

    .byte 07,07,07,07,07,07,07,07,07,07,07,07,07,07,07

    ; .byte 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08

    ; .byte 09,09,09,09,09,09,09,09,09,09,09,09,09,09,09

    ; .byte 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10

    ; .byte 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11

    ; .byte 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12

    ; .byte 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13

    ; .byte 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14

    ; .byte 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15

    ; .byte 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16

    ; .byte 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17

    ; .byte 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18

     

    PositionSprite

    sta WSYNC

    lda Divide15,x

    tax

    Loop dex

    bne Loop

    sta RESP0

    rts

     

    ShipUp

    .byte #$44 ;01000100

    .byte #$28 ;00111000

    .byte #$FE ;11111110

    .byte #$7C ;01111100

    .byte #$28 ;00111000

    .byte #$10 ;00010000

    .byte #$10 ;00010000

    .byte #$10 ;00010000

    ShipRight

    .byte #$20 ;00100000

    .byte #$B0 ;10110000

    .byte #$78 ;01111000

    .byte #$7F ;01111111

    .byte #$78 ;01111000

    .byte #$B0 ;10110000

    .byte #$20 ;00100000

    .byte #$00 ;00000000

     

    ; Interrupt Vectors

    ORG $FFFA

    InterruptVectors

    .word Start ; NMI

    .word Start ; Reset

    .word Start ; IRQ

     

    ; DASM execution code:

    ; dasm {filename}.asm -l{filename}.txt -f3 -v5 -s{filename}.txt -o{filename}.bin

    ;

    ; FSB execution code

    ; fsb {output file}.asm {red file}.bmp {green file}.bmp {blue file}.bmp

×
×
  • Create New...