![]() Vertical Size: 16 scan lines per text cell (LPR2: 1, LPR1: 1, LPR0: 1).ĭescription: 12 rows of text. Vertical Size: 11 scan lines per text cell (LPR2: 1, LPR1: 1, LPR0: 0). Vertical Size: 10 scan lines per text cell (LPR2: 1, LPR1: 0, LPR0: 1). Vertical Size: 9 scan lines per text cel (LPR2: 1, LPR1: 0, LPR0: 0). Vertical Size: 8 scan lines per text cell (LPR2: 0, LPR1: 1, LPR0: 1). ![]() Vertical Size: 2 scan lines (LPR2: 0, LPR1: 1, LPR0: 0).ĭescription: Uses the first two rows of every text cell for 96 rows. Vertical Size: 1 scan line (LPR2: 0, LPR1: 0, LPR0: 1). Vertical Size: 1 scan line (LPR2: 0, LPR1: 0, LPR0: 0).ĭescription: Uses the first row of every text cell for 192 rows. Here is the program I used to create the display: 10 CLS I decided to run thru the complete 40 column text mode options on a CoCo 3. They show what the program display as they are running.ĬoCo 3 Interrupts Tests.zip Posted in Uncategorized Color Computer 3 Text Mode Study Included are video files from my Color Computer 3 with an ’86 GIME. TEST3 is the program that test a timer value of zero (bug #1). All three programs use polling to check if the timers fired (bug #2). TEST3 sets up the slow timer with a value of $0. TEST2 sets up the fast timer with a value of $FFF. TEST1 sets up the slow timer with a value of $FFF. Every time the interrupt is fired the address $400 is incremented. Three different routines that set up the timer interrupt. The archive below is the test code I wrote. On real hardware turning off the interrupt has no effect whether the flags are set. MAME tightly coupled the pulling of the F/IRQ line with setting the F/IRQ flag. This helped me to fix the above bug, and also discover another bug in MAME. In order to find this problem I wrote some test programs. On the second interrupt the sound system is properly initialized, real timer values were being written, and samples are being sent to the DAC. On real hardware you get an immediate re-aserting of the interrupt when the timer value is set to zero. Documentation about the CoCo 3 hardware says this should stop the timer interrupt. ![]() The problem was the first time the ISR was called: It wrote a zero for the amount of delay to the next interrupt, because the delay isn’t properly determined until then end of the ISR. Determine the next timer delay and store it for the next interrupt. Write the new timer delay to the registerĥ. Here is what the ISR did, in the order it did them:Ģ. ![]() It did not update the DAC at a constant frequency. His playback routine did two things: it wrote a value to the DAC, and determined the proper amount of time to wait before the next DAC update. I disassembled the FIRQ handler and quickly found the problem. For an example of the game working properly see this video here: Īfter talking with the author of the game (Steve Bjork: name drop) he said the sound in question was being played by using the timer interrupt system in the machine. Recently I was investigating why the Color Computer 3 version of Arkanoid didn’t make any ricochet sounds when the ball bounced off an object in MAME. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |