Re:Pacman in 512 bytes of x86 boot sector machine code
by anyfoo on Tuesday July 09, 2019 @11:26AM
(#20392707)
Oh, interesting. Do you happen to know how that bank switching and, more so, the RAM expansion was implemented? I heard before that this wasn’t common, because of a fatal omission in the cartridge connector. And indeed, looking at the pin out, it seems to lack a Write Enable line, or really anything else besides Address and Data lines!
https://old.pinouts.ru/Motherboard/AtariCartridge_pinout.sht...
Are the Data lines still bidirectional? Or was this achieved by strobing the Address lines in a certain pattern?
Re:Pacman in 512 bytes of x86 boot sector machine code
by tenebrisalietum on Tuesday July 09, 2019 @11:43AM
(#20392895)
All I know is the majority of carts with it had a few specific addresses that triggered the bankswitch when written, toward the top of memory right before the 6502 vectors. I'm unsure how they were implemented electronically.
At least one chip (the FE device for Decathlon) is sniffing the 6502 instruction stream because it triggers on JSR/RTS being executed.
http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt
Not only was there no framebuffer and only 128 bytes of RAM, but the graphics chip didn't generate any interrupts (it could halt the CPU until the start of the next scanline though). You had to wait and spinlock on a timer for the proper amount of time after finishing your frame and processing game state to start drawing the next frame.
You also manually had to tell the graphics chip to output VBLANK lines so you had to do that at the right time as well. If you got the timing wrong on that the vertical hold on your analog TV would lose sync and the screen would jitter or roll.