home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Magazine 7
/
Mega_Magazine_07_19xx___nl_Disk_2_of_2_Side_A.atr
/
wavey.arc
/
WAVEY.ASM
< prev
Wrap
Assembly Source File
|
1985-10-07
|
13KB
|
1 lines
10 ;£¢20 ;£WAVEY .M65/ASM¢30 ;£^^^^^^^^^^^^¢40 ;£ Line scrolling demo¢50 ;£¢60 .OPT NO LIST,NO EJECT,OBJ¢70 *= $3000¢80 SKCTL = $D20F¢90 AUDF1 = $D200¢0100 AUDC1 = $D201¢0110 AUDCTL = $D208¢0120 STICK0 = $0278¢0130 TRIG0 = $D010¢0140 HSCROL = $D404¢0150 SDLSTL = $0230¢0160 VDSLST = $0200¢0170 NMIEN = $D40E¢0180 COLPF0 = $D016¢0190 COLPF2 = $D018¢0200 COLBAK = $D01A¢0210 GRACTL = $D01D¢0220 RANDOM = $D20A¢0230 WSYNC = $D40A¢0240 SDMCTL = $022F¢0250 DMACTL = $D400¢0260 SETVBV = $E45C¢0270 XITVBV = $E462¢0280 CONSOL = $D10F¢0290 CHBAS = $02F4¢0300 GRAFP0 = $D00D¢0310 GRAFP1 = GRAFP0+1¢0320 SIZEP0 = $D008¢0330 SIZEP1 = SIZEP0+1¢0340 HPOSP0 = $D000¢0350 HPOSP1 = HPOSP0+1¢0360 HPOSP2 = HPOSP1+1¢0370 HPOSP3 = HPOSP2+1¢0380 COLPM0 = $D012¢0390 COLPM1 = COLPM0+1¢0400 COLPM2 = COLPM1+1¢0410 COLPM3 = COLPM2+1¢0420 GPRIOR = $026F¢0430 PRIOR = $D01B¢0440 PCOLR0 = $02C0¢0450 PCOLR1 = PCOLR0+1¢0460 SCROL .BYTE 0¢0470 WHERE .BYTE 0¢0480 STEP .BYTE 0¢0490 CF .BYTE 0¢0500 FLAG .BYTE 1¢0510 TEMP = $CB¢0520 ;¢0530 START¢0540 LDA #35¢0550 STA SDMCTL¢0560 LDA #$70¢0570 STA CHBAS¢0580 LDA # <DLIST¢0590 STA SDLSTL¢0600 LDA # >DLIST¢0610 STA SDLSTL+1¢0620 LDA # <PMDLI¢0630 STA VDSLST¢0640 LDA # >PMDLI¢0650 STA VDSLST+1¢0660 LDA #0¢0670 STA $CE¢0680 STA AUDC1¢0690 STA AUDC1+2¢0700 STA AUDC1+4¢0710 STA AUDC1+6¢0720 STA HPOSP2¢0730 STA HPOSP3¢0740 STA $14¢0750 STA SIZEP1¢0760 STA PCOLR0¢0770 STA PCOLR1¢0780 STA GRACTL¢0790 STA $06FF¢0800 LDA #8¢0810 STA 709¢0820 LDA #6¢0830 STA 708¢0840 LDA #$C0¢0850 STA AUDCTL¢0860 STA $FF¢0870 LDA #$0A¢0880 STA 710¢0890 LDA #$80¢0900 STA $D0¢0910 LDA #3¢0920 STA SIZEP0¢0930 STA SKCTL¢0940 LDA #4¢0950 STA GPRIOR¢0960 LDA #255¢0970 STA GRAFP0¢0980 STA GRAFP1¢0990 LDA #15¢1000 STA SCROL¢1010 STA HSCROL¢1020 LDA #1¢1030 LDA #1¢1040 STA 544¢1050 WAIT1 LDA 544¢1060 BNE WAIT1¢1070 LDA #192¢1080 STA NMIEN¢1090 LDY # <HERE¢1100 LDX # >HERE¢1110 LDA #7¢1120 JSR SETVBV¢1130 LOOP JMP LOOP¢1140 ;¢1150 ;¢1160 ; Scroll the scroller by one bit¢1170 ; and shift LMS address if¢1180 ; needed.¢1190 SCROLY¢1200 LDA SCROL¢1210 SBC #1¢1220 STA SCROL¢1230 STA HSCROL¢1240 CMP #5¢1250 BEQ ZERO¢1260 RTS ¢1270 ZERO LDA #13¢1280 STA SCROL¢1290 STA HSCROL¢1300 LDA LOW¢1310 CLC ¢1320 ADC #1¢1330 STA LOW¢1340 BCC ONE¢1350 INC HI¢1360 ONE LDA LOW¢1370 ?A1 CMP # <LEN¢1380 BNE END¢1390 LDA HI¢1400 ?A2 CMP # >LEN¢1410 BNE END¢1420 LDA # <SCRNMEM¢1430 STA LOW¢1440 LDA # >SCRNMEM¢1450 STA HI¢1460 END RTS ¢1470 ;¢1480 ;Cracked music routine from¢1490 ; DownTown. JSR once during¢1500 ; VBlank.¢1510 MUSIC LDA $FF¢1520 STA AUDCTL¢1530 LDA #$03¢1540 STA SKCTL¢1550 DEC $060D¢1560 BEQ ?1¢1570 JMP ?2¢1580 ?1 LDX #$02¢1590 STX $060D¢1600 DEC $060C¢1610 BNE ?3¢1620 LDX #$05¢1630 STX $060C¢1640 JSR ?4¢1650 ?3 LDY $0600¢1660 INY ¢1670 CPY #$31¢1680 BNE ?8¢1690 DEY ¢1700 ?8 STY $0600¢1710 TYA ¢1720 CLC ¢1730 ADC $0608¢1740 TAY ¢1750 LDA $7800,Y¢1760 STA $0604¢1770 LDY $0601¢1780 INY ¢1790 CPY #$31¢1800 BNE ?5¢1810 DEY ¢1820 ?5 STY $0601¢1830 TYA ¢1840 CLC ¢1850 ADC $0609¢1860 TAY ¢1870 LDA $7900,Y¢1880 STA $0605¢1890 LDY $0602¢1900 INY ¢1910 CPY #$31¢1920 BNE ?6¢1930 DEY ¢1940 ?6 STY $0602¢1950 TYA ¢1960 CLC ¢1970 ADC $060A¢1980 TAY ¢1990 LDA $7A00,Y¢2000 STA $0606¢2010 LDY $0603¢2020 INY ¢2030 CPY #$31¢2040 BNE ?7¢2050 DEY ¢2060 ?7 STY $0603¢2070 TYA ¢2080 CLC ¢2090 ADC $060B¢2100 TAY ¢2110 LDA $7B00,Y¢2120 STA $0607¢2130 CLC ¢2140 LDA $0604¢2150 ADC #$80¢2160 STA AUDC1¢2170 LDA $0605¢2180 ADC #$A0¢2190 STA AUDC1+2¢2200 LDA $0606¢2210 ADC #$C0¢2220 STA AUDC1+4¢2230 LDA $0607¢2240 ADC #$A0¢2250 STA AUDC1+6¢2260 ?2 LDA SKCTL¢2270 CMP #$06¢2280 BNE ?9¢2290 LDA #$00¢2300 STA $CE¢2310 LDA #$80¢2320 STA $D0¢2330 STA $CF¢2340 ?9 JMP ?23¢2350 ?16 LDY $060E¢2360 LDA $7C00,Y¢2370 STA $060E¢2380 RTS ¢2390 ?24 LDA $060E¢2400 CLC ¢2410 ADC #$40¢2420 TAY ¢2430 LDA $7C00,Y¢2440 STA $060E¢2450 RTS ¢2460 ?15 LDY $060F¢2470 LDA #$CE¢2480 ?10 CLC ¢2490 ADC #$32¢2500 DEY ¢2510 BPL ?10¢2520 STA $060F¢2530 RTS ¢2540 ?4 INC $CE¢2550 BNE ?11¢2560 INC $D0¢2570 ?11 LDY #$00¢2580 LDX $D0¢2590 CPX #$83¢2600 BNE ?12¢2610 LDA #$80¢2620 STA $D0¢2630 TAX ¢2640 ?12 STX $CF¢2650 LDX #$00¢2660 LDY #$00¢2670 LDA ($CE),Y¢2680 JSR ?13¢2690 LDA $060E¢2700 BEQ ?14¢2710 STX $0600¢2720 JSR ?15¢2730 JSR ?16¢2740 LDA $060E¢2750 STA AUDF1¢2760 LDA $060F¢2770 STA $0608¢2780 ?14 LDA $D0¢2790 CLC ¢2800 ADC #$04¢2810 STA $CF¢2820 LDY #$00¢2830 LDA ($CE),Y¢2840 JSR ?13¢2850 LDA $060E¢2860 BEQ ?17¢2870 LDX #$00¢2880 STX $0601¢2890 JSR ?15¢2900 JSR ?16¢2910 LDA $060E¢2920 STA $0611¢2930 LDA $060F¢2940 STA $0609¢2950 CLC ¢2960 ?17 LDA $D0¢2970 CLC ¢2980 ADC #$08¢2990 STA $CF¢3000 LDY #$00¢3010 LDA ($CE),Y¢3020 JSR ?13¢3030 LDA $060E¢3040 BEQ ?18¢3050 STX $0602¢3060 JSR ?15¢3070 JSR ?24¢3080 LDA $060E¢3090 STA AUDF1+4¢3100 LDA $060F¢3110 STA $060A¢3120 ?18 LDA $D0¢3130 CLC ¢3140 ADC #$0C¢3150 STA $CF¢3160 LDY #$00¢3170 LDA ($CE),Y¢3180 JSR ?13¢3190 LDA $060E¢3200 BEQ ?19¢3210 STX $0603¢3220 JSR ?15¢3230 JSR ?16¢3240 LDA $060E¢3250 STA $0612¢3260 LDA $060F¢3270 STA $060B¢3280 ?19 RTS ¢3290 ?13 PHA ¢3300 AND #$3F¢3310 STA $060E¢3320 PLA ¢3330 AND #$C0¢3340 LSR A¢3350 LSR A¢3360 LSR A¢3370 LSR A¢3380 LSR A¢3390 LSR A¢3400 STA $060F¢3410 RTS ¢3420 ?23 INC $0610¢3430 LDA $0612¢3440 STA AUDF1+6¢3450 LDA $0611¢3460 DEC $0613¢3470 BNE ?20¢3480 LDX #$03¢3490 STX $0613¢3500 CMP #$39¢3510 BCC ?20¢3520 LDA $0610¢3530 AND #$01¢3540 CLC ¢3550 ADC $0611¢3560 SEC ¢3570 SBC #$01¢3580 ?20 STA AUDF1+2¢3590 LDA #$40¢3600 LDX $0608¢3610 CPX #$00¢3620 BEQ ?21¢3630 CPX #$32¢3640 BEQ ?21¢3650 CLC ¢3660 ADC #$80¢3670 ?21 STA $FF¢3680 RTS ¢3690 ;¢3700 ; Vblank routine¢3710 HERE LDA #0¢3720 STA 77¢3730 JSR MUSIC¢3740 LDA $06FF¢3750 ADC CF¢3760 AND #$3F¢3770 BNE HERE0¢3780 LDA FLAG¢3790 EOR #1¢3800 STA FLAG¢3810 BEQ LABEL0¢3820 LDA #3¢3830 STA SIZEP0¢3840 LDA #0¢3850 STA SIZEP1¢3860 BEQ LABEL1¢3870 LABEL0 LDA #0¢3880 STA SIZEP0¢3890 LDA #3¢3900 STA SIZEP1¢3910 LABEL1 LDA PMV1¢3920 STA PMV2¢3930 EOR #1¢3940 STA PMV1¢3950 LDA PMX1¢3960 STA PMX2¢3970 EOR #1¢3980 STA PMX1¢3990 HERE0 LDA STICK0¢4000 AND #$0C¢4010 CMP #4¢4020 BEQ NEXT¢4030 JSR SCROLY¢4040 LDA STICK0¢4050 AND #$0C¢4060 CMP #8¢4070 BNE NEXT¢4080 JSR SCROLY¢4090 NEXT LDA TRIG0¢4100 BEQ SKIP1¢4110 INC CF¢4120 ;¢4130 ; Control bouncing of scroll¢4140 ; line.¢4150 SKIP1 LDY WHERE¢4160 JSR NLOOPY¢4170 LDA #$00¢4180 STA DL2,Y¢4190 STA DL2+1,Y¢4200 STA DL2-[[ <COPLN]+1],Y¢4210 STA DL2-[[ <COPLN]+2],Y¢4220 LDY STEP¢4230 LDA ORDER,Y¢4240 STA WHERE¢4250 INY ¢4260 STY STEP¢4270 CPY # <ORDERLN¢4280 BNE EXIT¢4290 LDA #0¢4300 STA STEP¢4310 EXIT JMP XITVBV¢4320 ;¢4330 ; Do a simple copy of the Scroll¢4340 ; Dlist to the active Dlist area¢4350 ; according to where it should¢4360 ; be.¢4370 NLOOPY¢4380 LDX #0¢4390 NLOOP LDA DL,X¢4400 STA DL2,Y¢4410 INY ¢4420 INX ¢4430 CPX # <COPLN¢4440 BNE NLOOP¢4450 RTS ¢4460 ;¢4470 ; Active Dlist area.¢4480 ; All the $00s here is the area¢4490 ; where the bouncing scroll¢4500 ; line is copied to.¢4510 DLIST .BYTE $70,$70,$60,$00¢4520 DL2 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00¢4530 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00¢4540 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00¢4550 ;¢4560 ; This is the area where the¢4570 ; 64 DLI waveform takes place.¢4580 ;¢4590 .BYTE $40¢4600 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4610 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4620 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4630 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4640 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4650 .BYTE $80,$80,$80,$80,$80,$80,$80,$80,$80,$80¢4660 .BYTE $80,$80,$80,$80¢4670 .BYTE $41, <DLIST, >DLIST¢4680 ;¢4690 ; This is the Dlist part of the¢4700 ; scroll line. the VBlank¢4710 ; routine controls the copying¢4720 ; of the below data to the¢4730 ; correct portion of the active¢4740 ; Dlist.¢4750 DL .BYTE $4E, <LINE, >LINE¢4760 .BYTE $4E, <LINE, >LINE¢4770 .BYTE $80¢4780 .BYTE $57¢4790 LOW .BYTE <SCRNMEM¢4800 HI .BYTE >SCRNMEM¢4810 .BYTE $00¢4820 .BYTE $4E, <LINE, >LINE¢4830 .BYTE $4E, <LINE, >LINE¢4840 COPLN = *-DL¢4850 ;¢4860 LINE .BYTE $E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4¢4870 .BYTE $E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4¢4880 .BYTE $E4,$E4,$E4,$E4,$E4,$E4,$E4,$E4¢4890 SCRNMEM .SBYTE +31," "¢4900 .SBYTE +31,"WELCOME TO THE 8-BIT SHADOW PRODUCTIONS' FIRST DEMO, THE "¢4910 .SBYTE +159,"WAVEY"¢4920 .SBYTE +31," DEMO. "¢4930 .SBYTE +159,"WE ARE A GROUP OF 3... DATA, AQUALUNG, AND PURE EVIL. "¢4940 .SBYTE +31,"AQUALUNG AND PURE EVIL DESIGNED THE COOL P/M BELOW. I JUST DID THIS LAME SCROLLER "¢4950 .SBYTE +31,"AND CRACKED THIS MUSIC. "¢4960 .SBYTE +159,"FOR YOUR VIEWING PLEASURE YOU MAY USE THE JOYSTICK TO MOVE THIS SCROLLER AND FIRE TO PAUSE"¢4970 .SBYTE +159," THE WAVEFORM. "¢4980 .SBYTE +31,"GREETINX TO MACE, WHITE SHADOW, AND J.A.C.S. "¢4990 .SBYTE +159,"8/92"¢5000 .SBYTE +31," "¢5010 LEN = *-19¢5020 ;¢5030 LEN2¢5040 .SBYTE " "¢5050 ;¢5060 ; DLI for the scroll line¢5070 ; rasters.¢5080 DLI¢5090 PHA ¢5100 TYA ¢5110 PHA ¢5120 TXA ¢5130 PHA ¢5140 LDX #15*16+14¢5150 LDY #0¢5160 D1¢5170 STA WSYNC¢5180 STX COLPF0¢5190 TXA ¢5200 SBC #$2E¢5210 STA COLPF2¢5220 STY COLBAK¢5230 DEX ¢5240 DEX ¢5250 INY ¢5260 INY ¢5270 CPY #16¢5280 BNE D1¢5290 DEY ¢5300 DEY ¢5310 LDX #3*16¢5320 D2¢5330 STA WSYNC¢5340 STX COLPF0¢5350 TXA ¢5360 ADC #$70¢5370 STA COLPF2¢5380 STY COLBAK¢5390 INX ¢5400 INX ¢5410 DEY ¢5420 DEY ¢5430 CPY #254¢5440 BNE D2¢5450 LDA #6¢5460 STA WSYNC¢5470 STA COLPF0¢5480 LDA #10¢5490 STA COLPF2¢5500 LDA #0¢5510 STA COLBAK¢5520 LDA # <PMDLI¢5530 STA VDSLST¢5540 LDA # >PMDLI¢5550 STA VDSLST+1¢5560 STA WSYNC¢5570 STA WSYNC¢5580 STA WSYNC¢5590 ; LDA #33¢5600 ; STA DMACTL¢5610 PLA ¢5620 TAX ¢5630 PLA ¢5640 TAY ¢5650 PLA ¢5660 RTI ¢5670 ;¢5680 ; An ultra-simple routine to¢5690 ; subtract 31 from the scroll¢5700 ; line text as protection.¢5710 ; purposely placed in the midst¢5720 ; of the code so a bit of¢5730 ; confusion takes place in¢5740 ; finding this routine.¢5750 ; Of course an experienced¢5760 ; hacker would have no problem.¢5770 CRACK LDA # <[SCRNMEM-1]¢5780 STA TEMP¢5790 LDA # >[SCRNMEM-1]¢5800 STA TEMP+1¢5810 LDY #0¢5820 UNPROT LDA (TEMP),Y¢5830 SBC #30¢5840 STA (TEMP),Y¢5850 LDA TEMP¢5860 CLC ¢5870 ADC #1¢5880 STA TEMP¢5890 BCC CHK1¢5900 INC TEMP+1¢5910 CHK1 LDA TEMP+1¢5920 CMP # >LEN2¢5930 BNE UNPROT¢5940 LDA TEMP¢5950 CMP # <LEN2¢5960 BNE UNPROT¢5970 LDX #$05¢5980 LDA #0¢5990 TAY ¢6000 CRLP STA $7800,Y¢6010 INY ¢6020 BNE CRLP¢6030 INC CRLP+2¢6040 DEX ¢6050 BNE CRLP¢6060 RTS ¢6070 ;¢6080 ; This is the heart of the¢6090 ; waveform. This DLI is run 64¢6100 ; times.¢6110 PMDLI¢6120 PHA ¢6130 TYA ¢6140 PHA ¢6150 LDA $06FF¢6160 AND #$3F¢6170 ADC CF¢6180 AND #$7F¢6190 TAY ¢6200 LDA ORDER1,Y¢6210 STA HPOSP0¢6220 PMV1 = *-2¢6230 LDA $D207¢6240 ASL A¢6250 ADC #70¢6260 STA COLPM0¢6270 PMX1 = *-2¢6280 LDA ORDER2,Y¢6290 STA HPOSP1¢6300 PMV2 = *-2¢6310 LDA $D207¢6320 ASL A¢6330 ADC #68+$60¢6340 STA COLPM1¢6350 PMX2 = *-2¢6360 INC $06FF¢6370 LDA $06FF¢6380 AND #$3F¢6390 BNE PD1¢6400 LDA # <DLI¢6410 STA VDSLST¢6420 LDA # >DLI¢6430 STA VDSLST+1¢6440 LDA #0¢6450 STA HPOSP0¢6460 STA HPOSP1¢6470 STA HPOSP2¢6480 STA HPOSP3¢6490 STA COLPM0¢6500 STA COLPM1¢6510 STA COLPM2¢6520 STA COLPM3¢6530 PD1¢6540 PLA ¢6550 TAY ¢6560 PLA ¢6570 RTI ¢6580 ;¢6590 ; Include the Data.¢6600 .INCLUDE #D1:>M65>DATA.M65¢6610 ;¢