peteym5 Posted April 6, 2008 Share Posted April 6, 2008 APAC is not owned by anyone, its a machine language trick that alternates between 2 GTIA modes, 9 & 11, (+64, +192 on the prior register.) It can be done in combination with Antic Modes 2,3, or 15, a character mapped, or bit mapped screen. Character Mapped lines, you need to do a WSYNC for each line before storing a new PRIOR register value and therefore probably eat up more CPU time. Bit Mapped mode can just set the DLI bit on each line and toggle between the two Prior restister values. I have been considering the mode for simple puzzle like games such as Tetris, or Puzzler (COMPUTE! magazine basic program) to where a few things have to move at a time. To do more complicated stuff, the whole program probably needs to be ML driven. Quote Link to comment Share on other sites More sharing options...
atariksi Posted April 7, 2008 Share Posted April 7, 2008 APAC is not owned by anyone, its a machine language trick that alternates between 2 GTIA modes, 9 & 11, (+64, +192 on the prior register.) It can be done in combination with Antic Modes 2,3, or 15, a character mapped, or bit mapped screen. Character Mapped lines, you need to do a WSYNC for each line before storing a new PRIOR register value and therefore probably eat up more CPU time. Bit Mapped mode can just set the DLI bit on each line and toggle between the two Prior restister values. I have been considering the mode for simple puzzle like games such as Tetris, or Puzzler (COMPUTE! magazine basic program) to where a few things have to move at a time. To do more complicated stuff, the whole program probably needs to be ML driven. I have seen that more you write to WSYNC register, the more it throws off the audio quality. In my application, the audio is almost always playing. Probably need to invent a new mode using temporal dithering with a VBI or DLI that does not require a WSYNC write, or factor out the WSYNC by simulating a DLI using POKEY IRQ timer #2 as I did before for some application: ;*** Test timer accuracy on Atari 400/800 by Krishna Software Inc. without using DLIs. TIMERFREQLSB = 53760 TIMERFREQMSB = 53762 WSYNC = 54282 VCOUNT = 54283 DOSVEC = 10 CASINI = 2 WARMSTART = 58484 VMIRQ = 534 ;hardware irq ptr ORG = 600h ;DW 0FFFFh ;DW StartAdr ;DW LastOffset-1 DB 0,3 ;# of sectors to load 1..255 DW ORG DW StartAdr Rts StartAdr: Lda #MyReset,L Sta CASINI Lda #MyReset,H Sta CASINI+1 Lda #0 Sta 580 Lda #2 Sta 9 Jmp WARMSTART MyReset: Lda #2 Sta 9 Lda #MyReset,L Sta CASINI Lda #MyReset,H Sta CASINI+1 Sei Lda #0 ;no VBIs nor DLIs for maximum performance Sta 54286 Sta 53774 ;disable all IRQs Sta 54272 ;turn off screen Lda #TimerTwoIRQ,L ;general IRQ routine but we use only for timer #2 Sta VMIRQ Lda #TimerTwoIRQ,H Sta VMIRQ+1 Lda #80 ;40 for join channels 3,4; +80 for channels 1+2 @1.79Mhz Sta 53768 ;join channels at 1.79 Mhz Lda #165 ;lsb 165 Sta 53760 ;timer #2 freq = 1789790/[A+1] Lda #116 ;msb for rate divisor A Sta 53762 Lda #2 ;2=timer interrupt Sta 53774 ;enable IRQ #2 NotMidScreen: Lda VCOUNT Cmp #65 Bne NotMidScreen Sta WSYNC Sta 53769 ;start timer counter CLI Lda #34 Sta 54272 IdleLoop: ;put your code here Jmp IdleLoop TimerTwoIRQ: Pha Lda #255 Sta 53272 ;change register (like color for example) Lda #0 Sta 53774 Lda #2 Sta 53774 ;send ack to timer irq Nop Nop Lda #96 Sta 53272 ;change register (like color for example) Pla Rti ;LastOffset: DW 2e0h,2e1h,ORG Quote Link to comment Share on other sites More sharing options...
carmel_andrews Posted April 7, 2008 Share Posted April 7, 2008 Rybag's...I read in some Atari book somewhere that the maximum amount you can hardware scroll (before you have to reset the H/Vscroll locations and also point LMS to a new section of memory, is 8 pixels or poking the H/Vscroll locations with a value betw. 0-8 Does your idea mean that other values within H/V scroll locations do other things Quote Link to comment Share on other sites More sharing options...
MaPa Posted April 7, 2008 Share Posted April 7, 2008 Rybag's...I read in some Atari book somewhere that the maximum amount you can hardware scroll (before you have to reset the H/Vscroll locations and also point LMS to a new section of memory, is 8 pixels or poking the H/Vscroll locations with a value betw. 0-8 Does your idea mean that other values within H/V scroll locations do other things VScroll and HScroll are 4-bit registers so you can scroll upto 15 pixels (0-15) without need to change LMS. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted April 7, 2008 Share Posted April 7, 2008 H/VSCROLL can be triggered 0-$0f without any issues. but while I am on C64 right now and they play around with $d011 it reminds me...do we ever played around in triggering ANTIC/GTIA on special screenpositions to get new suprises? I can only remember 2 things which I would count in this category: - "3 graphics mode" per scanline - mode9++ Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 7, 2008 Share Posted April 7, 2008 I've played with changing HSCROL mid-scanline. The results at times are weird and hard to document. Whether they would be of any use for anything is doubtful. With vertical tricks - well, I believe you can play with DMACTL and get Antic to do funny stuff like: redisplay a character line without the screen DMA (but still reads chr data). In fact, if you read the docs - Antic has a register, not directly accessible to tell it what mode to generate. You can have a single-line display list, and if you just turn off Display List DMA, it'll repeat the same graphics mode for the entire screen (incrementing it's memory scan in the normal fashion). Carmel: HSCROL can shift along by 15 colour clocks, which equates to moving 4 full GR. 0 character cells, before a memory move or LMS change is needed. The "HDELAY" thing I wished for before would be so we could shift pixels in GTIA mode. Putting the register on GTIA would have probably been the easy way to go about it. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted April 7, 2008 Share Posted April 7, 2008 have to play around on my real 130xe as i doubt atari800win can handle all the tricky stuff correctly. Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 7, 2008 Share Posted April 7, 2008 For HSCROL tricks, it has no hope. I think it gets DMA stuff right. But, despite claims of "cycle exact" emulation, that is not the case with lots of stuff involving scroll regs, GPRIOR etc. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted April 7, 2008 Share Posted April 7, 2008 is there any antic/gtia document with all internals and/or timings? Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 7, 2008 Share Posted April 7, 2008 I don't think there's any official stuff I've seen with timings relating to internal workings. Only stuff like bus interface etc which isn't really relevant to programming. There's the huge DMA chart that someone here did, showing Antic's bus access in different modes with various HSCROL values. Quote Link to comment Share on other sites More sharing options...
HiassofT Posted April 7, 2008 Share Posted April 7, 2008 is there any antic/gtia document with all internals and/or timings? The original Antic docs might have contained some information (from the index: page 28: Cycle Counting), but unfortunately these pages are missing in the PDF... ftp://ftp.pigwa.net/stuff/collections/nir...0Info/ANTIC.PDF so long, Hias Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted April 7, 2008 Share Posted April 7, 2008 hmmm... sad that there are pages missing.... as for me not many new informations? Quote Link to comment Share on other sites More sharing options...
kiwilove Posted April 13, 2008 Share Posted April 13, 2008 I'm no programmer... I thought the way to do the animation is to use a redefined character set, that appears to be graphics mode 9 or 10. I'm only aware of the programs, etc that were present till around 1989, and not after this date. There was that helicopter taking off animation using ATASCII characters - using simple BASIC - that could be redone with a Gr.9 or 10 character set? Could you redo other demos? Changing their graphics mode too? To be even more spectacular? Harvey Quote Link to comment Share on other sites More sharing options...
miker Posted May 3, 2008 Share Posted May 3, 2008 (edited) oh...my website has gone... Not 100% - someone can make backup/mirror of its remains: http://web.archive.org/web/*/http://www.s-...omepages/k_nadj Edited May 3, 2008 by miker 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.