This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
-
Entry name:Display List Interrupts
-
Category:Graphics
-
Publisher/Developer:SoftSide Publications
-
Year:1982
Listing 1
10000 N0=0:N1=1:N2=2:N3=3:N4=4:N5=5:N6=6:N7=7:N8=8:N9=9:N10=10 11000 GRAPHICS 21:POKE 752,N1:C=N0:POKE 87,N0 11010 DL=PEEK(560)+PEEK(561)*256+N4 11020 MEM=PEEK(DL)+PEEK(DL+1)*256+40 11030 MH=INT(MEM/256):ML=MEM-MH*256 11040 POKE 559,N0:POKE DL-N1,198 11050 POKE DL+N2,66:POKE DL+N3,ML 11060 POKE DL+N4,MH 11070 FOR J=N5 TO 26:POKE DL+J,N2:NEXT J 11080 POKE DL+12,130:POKE DL+15,130 11090 POKE DL+22,130:POKE DL+27,65 11100 POKE DL+28,PEEK(560) 11110 POKE DL+29,PEEK(561) 11120 READ A:IF A=999 THEN 11140 11130 POKE 1744+C,A:C=C+N1:GOTO 11120 11140 POKE 512,208:POKE 513,N6 11150 POKE 1774,176:POKE 1775,180 11160 POKE 1776,N0:POKE 1777,144 11170 POKE 1778,N0:POKE 54286,192 11180 POKE 559,34 11190 DATA 72,138,72,174,242,6,189,238,6,141,10,212,141,24,208,232 11200 DATA 224,4,144,2,162,0,138,141 11210 DATA 242,6,104,170,104,64,999
Listing 2
0100 *= $06D0 ;SET START OF ASSEMBLY. 0110 ; 0120 ; DEFINE SYSTEM EQUATES 0130 ; 0140 WSYNC = $D40A ;WAIT FOR HORIZONTAL SYNC REGISTER. 0150 BGRND = $D018 ;BACKGROUND COLOR HARDWARE REGISTER. 0160 ; 0170 ; START OF DLI HANDLER ROUTINE 0180 ; 06D0: 48 0190 START PHA ;SAVE THE A REGISTER ONTO THE STACK. 06D1: 8A 0200 TXA ;PUT X REGISTER INTO A AND THEN 06D2: 48 0210 PHA ;SAVE IT ONTO THE STACK ALSO. 06D3: AE F2 06 0220 LDX STORE ;GET THE CONTENTS OF STORE INTO X. 06D6: BD EE 06 0230 LDA TABLE,X ;SET COLOR POINTED TO BY X INTO A. 06D9: 8D 0A D4 0240 STA WSYNC ;WAIT FOR TIMING, THEN PROCEED. 06DC: 8D 18 D0 0250 STA BGRND ;CHANGE COLORS IN HARDWARE REGISTER. 06DF: E8 0260 INX ;POINT X TO NEXT COLOR FOR DLI USE. 06E0: E0 04 0270 CPX #$04 ;IF WE'RE NOT PAST THE TABLE'S END, 06E2: 90 02 0280 BCC OUT ;THEN GET READY TO LEAVE, 06E4: A2 00 0290 LDX #$00 ;ELSE POINT X TO THE TABLE'S START. 0300 ; 0310 ; END DLI, SET UP FOR NEXT 0320 ; 06E6: 8A 0330 OUT TXA ;PUT X BACK INTO THE A REGISTER. 06E7: 8D F2 06 0340 STA STORE ;SAVE UPDATED COLOR TABLE POINTER. 06EA: 68 0350 PLA ;REMOVE OLD X REGISTER. 06EB: AA 0360 TAX ;PUT IT BACK IN PLACE. 06EC: 68 0370 PLA ;RESTORE OLD A REGISTER. 06ED: 40 0380 RTI ;EXECUTE RETURN FROM INTERRUPT. 0390 ; 0400 ; DLI COLOR TABLE AND POINTER 0410 ; 06EF: 00 00 0420 TABLE .WORD $00 ;RESERVE 4 BYTES FOR COLOR TABLE. 06F1: 00 00 0430 .WORD $00 06F3: 00 0440 STORE .BYTE $00 ;RESERVE 1 BYTE FOR TABLE POINTER 0450 .END
References
Listing downloads
Copyright holder