Jump to content
IGNORED

Atari 2600 POP


jeffrond

Recommended Posts

I have finally read an Atari rom properly! It does not match the Atari VCS Point-of-Purchase ROM (1982).bin above perfectly. In the above rom memory location 0390 contains 0F. In my rom, location 0390 contains 07.

 

This is what I used to read the rom.

post-23369-0-29025000-1523751445.jpg
Here is my rom:
What do you think rom experts? Can any of you tell what will happen with that 07 vs 0F at location 0390?
Link to comment
Share on other sites

Right. You have to sit and wait and sooner or later it will cycle to the copyright screen and then the game selection menu.

 

Well that's a shitkicker, every single time I loaded it. I jammed on all the buttons and controls. It did nothing, I put the window in the background and ran off to do something else, when I came back it was still showing the Fuji. I did it 4 times!! What terrible timing..

Link to comment
Share on other sites

I partially disassembled the POP rom a while ago in order to hack it into a menu for the "Menu Driven Mega Cart" designed by Edwin Blink.

The POP is slightly different compared to a standard 2600 and that's why the rom doesn't do much in Stella and other 2600 emulators (technically it's not a rom for the Atari 2600!)
Here are a few notes (from the source that you can find in this post):

;==========================================================================================
; VCS POP (Point Of Purchase) KIOSK hardware notes 
;==========================================================================================
;
; 
; Memory map has a few differences from the standard VCS one:
; TIA mirrors in $x800-$xFFF area don't exist in the VCS POP.
; any address in the $x800-$xFFF (x=even value) area maps to dip 
; switch A7 (READ - 4 bits in low nybble) and Rom select latch (WRITE - 6 bits).
; RIOT mirrors in $x800-$xFFF area DO exist, but cannot be used because they would cause 
; bus contention with dip switch/ rom select latch
; 
; 
; 
;                                              A|A|A|A|A|A|A|A|A|A|A|A|A|A|A|A
;                                              1|1|1|1|1|1|9|8|7|6|5|4|3|2|1|0
;                                              5|4|3|2|1|0| | | | | | | | | |            
; $0000-$003F = TIA $00-$3F           mirrors: - - - 0 0 - - - 0 - x x x x x x
; $0080-$00FF = RIOT RAM $00-$7F      mirrors: - - - 0 - - 0 - 1 x x x x x x x
; $0280-$029F = RIOT $00-$1F          mirrors: - - - 0 - - 1 - 1 - - x x x x x
; $0800       = ROM LATCH (WRITE) /   mirrors: - - - 0 1 - - - - - - - - - - -
;               DIP SWITCH A7 (READ)          
; $1000-$1FFF = ROM                   mirrors: - - - 1 x x x x x x x x x x x x
;            
;                                              x = used as address bit
;                                              - = don't care
;
;
; 
; No LDIF, RDIF, TVTYPE, SELECT or RESET physical switches.
; LDIF and RDIF bits hardwired to GND (B position).
; RESET bit goes low for a while after a ROM is selected.
;
; There are 2 pushbuttons to select the game number (ONES and TENS) and a START button
; These 3 buttons are wired to the 3 unused (on the VCS) pins of RIOT PORTB
;
; A timer circuit resets the POP VCS after a while. Duration (infinite play is also possible) 
; is set by 4-dipswitch bank A8.
; 
; 
; Pressing any of the START, ONES or TENS buttons cause the timer to reset
;
; 2 joysticks and 2 paddles (INPT0 -INPT1) hardwired
;
;
; Rom select latch:
; 6 bits used : 	        bit 0,1 -> COL 0-3
;			        bit 2	-> ROMSEL2
;			        bit 3,4,5 -> ROW 0-5
;
; 48 roms max supported ($00 - $2F). rom $00 is the menu itself
; A standard 2600 cart port is present on the board but cannot be accessed with the board
; mounted inside the cabinet. The port is wired in parallel with rom #7. To use it, the rom 
; in that position must be removed, then the cart can be accessed by selecting game 7 on
; the menu.
;
;
; Dip switch A7:
; 4 bits = number of free upper rom slots (0-15)
;==========================================================================================

I have finally read an Atari rom properly! It does not match the Atari VCS Point-of-Purchase ROM (1982).bin above perfectly. In the above rom memory location 0390 contains 0F. In my rom, location 0390 contains 07.


That byte affects the max game number displayed in the menu that can be configured using the dipswitches marked "A7" on the board:

post-10599-0-05576900-1523807741.jpg

the known rom allows values from 32 to 47, while the one you dumped from 40 to 47 (basically it ignores the position of one of the switches).
Here's the relevant code:

LF38C:
       LDA    DIPSW_A7          ;4
       AND    #$0F              ;2  <------------------ AND #$07 in the alternate dump!
       STA    temp0             ;3
       LDA    #$2F              ;2 max number of games = 48
       SEC                      ;2
       SBC    temp0             ;3
       LDX    #$00              ;2
LF39A: ; divide by ten to convert to BCD
       SEC                      ;2
       SBC    #$0A              ;2
       BMI    LF3A3             ;2
       INX                      ;2
       JMP    LF39A             ;3
LF3A3: 
       CLC                      ;2
       ADC    #$0B              ;2 add 1 to low BCD digit
       STA    max_rom_BCD_LO    ;3 Lo BCD digit
       INX                      ;2 add 1 to high BCD digit
       STX    max_rom_BCD_HI    ;3 HI BCD digit

Edited by alex_79
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...