jeffrond Posted April 15, 2018 Author Share Posted April 15, 2018 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. Here is my rom: Atari VCS POP.BIN What do you think rom experts? Can any of you tell what will happen with that 07 vs 0F at location 0390? Quote Link to comment Share on other sites More sharing options...
Keatah Posted April 15, 2018 Share Posted April 15, 2018 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.. Quote Link to comment Share on other sites More sharing options...
alex_79 Posted April 15, 2018 Share Posted April 15, 2018 (edited) 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: 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 April 15, 2018 by alex_79 1 Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted April 15, 2018 Share Posted April 15, 2018 So, is the new ROM dump worth archiving? Quote Link to comment Share on other sites More sharing options...
jeffrond Posted April 17, 2018 Author Share Posted April 17, 2018 Tough to tell if this is worth archiving or if it is due to bit-rot. Strange they would put code in the program if they have the hardware to limit the selections already. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.