home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1985 June / Antic_Magazine_1985_06_Antic_Side_B.atr / palette.asm < prev    next >
Assembly Source File  |  2023-02-26  |  6KB  |  1 lines

  1. 10 ;   COLOR PALETTE INTERRUPTS¢20 ;   JOHN W. FELTON¢30 ;   (c) 1985, ANTIC PUBLISHING¢40 ;¢50 DRKMSK =  $4E     ; ATTRACT MODE REDUCED LUMINANCE MASK¢60 COLRSH =  $4F     ; ATTRACT MODE COLOR SHIFT MASK¢70 WSYNC =   $D40A   ; WAIT FOR HORIZONTAL SYNCHRONIZATION REGISTER¢80 COLPF0 =  $D016   ; COLOR REGISTER FOR PLAYFIELD ZERO¢90 COLPF1 =  $D017   ; COLOR REGISTER FOR PLAYFIELD ONE¢0100 COLPF2 = $D018  ; COLOR REGISTER FOR PLAYFIELD TWO¢0110 COLPF3 = $D019  ; COLOR REGISTER FOR PLAYFIELD THREE¢0120 COLOR4 = $02C8  ; BACKGROUND COLOR REGISTER SHADOW¢0130 VDSLST = $0200  ; DISPLAY LIST INTERRUPT VECTOR¢0140 SYSVBV = $E45F  ; STAGE ONE VERTICAL BLANK ENTRY¢0150 SETVBV = $E45C  ; SET VERTICAL BLANK VECTOR ROUTINE¢0160 CHBASE = $D409  ; CHARACTER BASE ADDRESS¢0170     .ORG $0600  ; POSITION ON PAGE SIX¢0180 COLR0 .DS 1     ; DEFINE STORAGE FOR DISPLAY COLORS¢0190 COLR1 .DS 1¢0200 COLR2 .DS 1¢0210 COLR3 .DS 1¢0220 COLR4 .DS 1¢0230 COLR5 .DS 1¢0240 COLR6 .DS 1¢0250 COLR7 .DS 1¢0260     .DS 4       ; EXTRA STORAGE¢0270 ;¢0280 ; INTERRUPT #1¢0290 ;¢0300 INT1 PHA        ; PUSH ACCUMULATOR ON STACK¢0310     LDA COLOR4  ; LOAD BACKGROUND COLOR¢0320     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0330     AND DRKMSK¢0340     STA WSYNC   ; WAIT FOR HORIZONTAL BLANK¢0350     STA COLPF2  ; STORE IN GR.0 BACKGROUND COLOR REGISTER¢0360     LDA COLR7   ; LOAD DISPLAY COLOR SEVEN¢0370     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0380     AND DRKMSK¢0390     STA COLPF1  ; STORE IN GR.0 LUMINANCE COLOR REGISTER¢0400     LDA # <INT2 ; LOAD ADDRESS OF NEXT¢0410     STA VDSLST  ; INTERRUPT INTO THE¢0420     LDA # >INT2 ; DISPLAY LIST INTERRUPT¢0430     STA VDSLST+1 ; VECTOR¢0440     PLA         ; POP ACCUMULATOR OFF OF STACK¢0450     RTI         ; RETURN FROM INTERRUPT¢0460 ;¢0470 ; INTERRUPT #2¢0480 ;¢0490 INT2 PHA        ; PUSH ACCUMULATOR ON STACK¢0500     LDA COLR0   ; LOAD DISPLAY COLOR ZERO¢0510     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0520     AND DRKMSK¢0530     STA WSYNC   ; WAIT FOR HORIZONTAL BLANK¢0540     STA COLPF0  ; STORE IN COLOR REGISTER ZERO¢0550     LDA COLR1   ; LOAD DISPLAY COLOR ONE¢0560     EOR COLRSH  ; PERFORM ATTRACT OPERATIONS¢0570     AND DRKMSK¢0580     STA COLPF1  ; STORE IN COLOR REGISTER ONE¢0590     LDA COLR2   ; LOAD DISPLAY COLOR TWO¢0600     EOR COLRSH  ; PERFORM ATTRACT OPERATIONS¢0610     AND DRKMSK¢0620     STA COLPF2  ; STORE IN COLOR REGISTER TWO¢0630     LDA COLR3   ; LOAD DISPLAY COLOR 3¢0640     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0650     AND DRKMSK¢0660     STA COLPF3  ; STORE IN COLOR REGISTER THREE¢0670     LDA # <INT3 ; LOAD ADDRESS OF NEXT¢0680     STA VDSLST  ; INTERRUPT INTO¢0690     LDA # >INT3 ; DISPLAY LIST INTERRUPT¢0700     STA VDSLST+1 ; VECTOR¢0710     PLA         ; POP ACCUMULATOR OFF OF STACK¢0720     RTI         ; RETURN FROM INTERRUPT¢0730 ;¢0740 ; INTERRUPT #3¢0750 ;¢0760 INT3 PHA        ; PUSH ACCUMULATOR ON STACK¢0770     LDA COLOR4  ; LOAD BACKGROUND COLOR¢0780     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0790     AND DRKMSK¢0800     STA WSYNC   ; WAIT FOR HORIZONTAL BLANK¢0810     STA COLPF2  ; STORE IN GR.0 BACKGROUND COLOR REGISTER¢0820     LDA COLR7   ; LOAD DISPLAY COLOR SEVEN¢0830     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0840     AND DRKMSK¢0850     STA COLPF1  ; STORE IN GR.0 LUMINANCE COLOR REGISTER¢0860     LDA # <INT4 ; LOAD ADDRESS OF NEXT¢0870     STA VDSLST  ; INTERRUPT INTO THE¢0880     LDA # >INT4 ; DISPLAY LIST INTERRUPT¢0890     STA VDSLST+1 ; VECTOR¢0900     PLA         ; POP ACCUMULATOR OFF OF STACK¢0910     RTI         ; RETURN FROM INTERRUPT¢0920 ;¢0930 ; INTERRUPT #4¢0940 ;¢0950 INT4 PHA        ; PUSH ACCUMULATOR ON STACK¢0960     LDA COLR4   ; LOAD DISPLAY COLOR FOUR¢0970     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢0980     AND DRKMSK¢0990     STA WSYNC   ; WAIT FOR HORIZONTAL BLANK¢1000     STA COLPF0  ; STORE IN COLOR REGISTER ZERO¢1010     LDA COLR5   ; LOAD DISPLAY COLOR FIVE¢1020     EOR COLRSH  ; PERFORM ATTRACT OPERATIONS¢1030     AND DRKMSK¢1040     STA COLPF1  ; STORE IN COLOR REGISTER ONE¢1050     LDA COLR6   ; LOAD DISPLAY COLOR SIX¢1060     EOR COLRSH  ; PERFORM ATTRACT OPERATIONS¢1070     AND DRKMSK¢1080     STA COLPF2  ; STORE IN COLOR REGISTER TWO¢1090     LDA # <INT5 ; LOAD ADDRESS OF NEXT¢1100     STA VDSLST  ; INTERRUPT INTO¢1110     LDA # >INT5 ; DISPLAY LIST INTERRUPT¢1120     STA VDSLST+1 ; VECTOR¢1130     PLA         ; POP ACCUMULATOR OFF OF STACK¢1140     RTI         ; RETURN FROM INTERRUPT¢1150 ;¢1160 ; INTERRUPT #5¢1170 ;¢1180 INT5 PHA        ; PUSH ACCUMULATOR ON STACK¢1190     LDA COLOR4  ; LOAD BACKGROUND COLOR¢1200     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢1210     AND DRKMSK¢1220     STA WSYNC   ; WAIT FOR HORIZONTAL BLANK¢1230     STA COLPF2  ; STORE IN GR.0 BACKGROUND COLOR REGISTER¢1240     LDA #$E0    ; LOAD MSB OF ADDRESS OF CHARACTER SET IN ROM¢1250     STA CHBASE  ; STORE IN CHARACTER SET BASE POINTER¢1260     LDA COLR7   ; LOAD DISPLAY COLOR SEVEN¢1270     EOR COLRSH  ; PERFORM ATTRACT MODE OPERATIONS¢1280     AND DRKMSK¢1290     STA COLPF1  ; STORE IN GR.0 LUMINANCE COLOR REGISTER¢1300     PLA         ; POP ACCUMULATOR OFF OF STACK¢1310     RTI         ; RETURN FROM INTERRUPT¢1320 ;¢1330 ; VERTICAL BLANK INTERRUPT¢1340 ;¢1350 VBI LDA # <INT1 ; LOAD ADDRESS OF FIRST¢1360     STA VDSLST  ; INTERRUPT INTO THE¢1370     LDA # >INT1 ; DISPLAY LIST INTERRUPT¢1380     STA VDSLST+1 ; VECTOR¢1390     JMP SYSVBV  ; JUMP TO OS VERTICAL BLANK ROUTINE¢1400 ;¢1410 ; SET VECTOR TO VERTICAL BLANK INTERRUPT¢1420 ;¢1430     PLA         ; DISCARD NUMBER OF PARAMETERS PASSED IN BASIC CALL¢1440     LDY # <VBI  ; LOAD Y WITH LSB OF INTERRUPT ADDRESS¢1450     LDX # >VBI  ; LOAD X WITH MSB OF INTERRUPT ADDRESS¢1460     LDA #6      ; LOAD ACCUMULATOR WITH SIX FOR IMMEDIATE VBI¢1470     JSR SETVBV  ; CALL OS ROUTINE TO SET VECTOR¢1480     RTS         ; RETURN FROM SUBROUTINE¢