Subject: [stella] Poor man's cart dumper From: "Fred Quimby" <c9r@xxxxxxxxxxx> Date: Sat, 13 Aug 2005 21:58:06 -0400 |
Yes, cart dumpers are totally pointless anymore. This is just for kicks. But I am not sure if one has ever been done that will run on a regular 2600 and needs no funky hardware. It works with a 2600, and dumps 2k and 4k carts through the right joystick port connected by two wires to a serial port (your serial port must accept TTL signals, as many do, or you'll need a TTL level converter and you need to modify the program below.) For different banking schemes, you will need to modify the asm file. It dumps the binary as a standard hex ASCII file. It copies a short program into the 2600's RAM and jumps there, and then waits for you to remove the cart, insert the cart to be dumped. You'll be treated to a colorful display while it waits for you to do everything. Then you press reset to begin dumping. Removing the cart while the 2600 is running can cause a crash unless you do it a certain way. I found that angling the cart (leaving the left side pins in longer than the right side) will allow you to remove the cart nearly every time. To insert another cart, also angle it so you insert the right side pins first. When dumping is done, a brk is executed which will usually start up the cart that you have inserted. Connections: 2600 PC serial port ----------------------------- Pin 1 Pin 2 Pin 8 Pin 5 asm code here: processor 6502 include "vcs.h" include "macro.h" BIT1 EQU 13 ; 1200 baud BIT2 EQU 13 ORG $0080 noreset lda SWCHB lsr iny sty COLUBK BCS noreset keepgoing ; ldy #20 ; jsr WSYNCY shit lda $f000,x pha lsr lsr lsr lsr jsr conv2hex pla jsr conv2hex lda #32 jsr OUT232 inc $f9 lda $f9 and #$0f sta $f9 bne noret lda #13 jsr OUT232 noret inc $fa ldx $fa bne keepgoing inc shit+2 bne keepgoing brk conv2hex and #$0f cmp #10 bcc noadd adc #6 noadd adc #48 OUT232 LDX #$FF ; output low for start bit ; change above to LDX #0 if using TTL converter STX SWCHA LDX #4 ; init count for 4 bit pairs LDY #BIT1 ; wait 1 bit JSR WSYNCY ; send the start bit EOR #$FF ; Remove above line if using TTL converter OUT232b STA SWCHA LDY #BIT2 ; wait 1 bit JSR WSYNCY ; send the next bit ROR ; rotate out next bit STA SWCHA ROR ; rotate out next bit LDY #BIT1 ; wait 1 bit JSR WSYNCY ; output next bit DEX ; decrement counter BNE OUT232b ; loop until 8 bits sent LDA #$00 ; output high for stop bit ; change above to LDA #$FF if using TTL converter STA SWCHA LDY #BIT1 ; wait 1 bit JSR WSYNCY ; send the stop bit RTS WSYNCY STY WSYNC ; wait a line DEY ; decrement line counter BNE WSYNCY ; loop until done RTS echo ($f9-*)," bytes free" .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 start sei cld ldx #$FF txs lda #0 clearmem sta 0,x dex bne clearmem ldx #$7F loop2 lda $f000,x sta $80,x dex bpl loop2 lda #1 sta SWACNT lda #$00 sta SWCHA rerestart ldy #200 delay jsr WSYNCY ldx #0 jmp $0080 ORG $107C .word start+$f80 .word start+$f80 Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://stella.biglist.com [demime 1.01d removed an attachment of type application/x-zip which had a name of 2600dump.ZIP]
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] compact send-only seri, Fred Quimby | Thread | Re: [stella] Poor man's cart dumper, Glenn Saunders |
Re: [stella] compact send-only seri, Fred Quimby | Date | Re: [stella] Poor man's cart dumper, Glenn Saunders |
Month |