10 ;the vectormagic-part of 20 ;THE HALLE PROJECT APRIL'93 30 ;(C)1993 CHIP SPECIAL SOFTWARE 40 ;CONTACT: FON/FAX: +49371223726 50 ; 60 X2 = $D0 ;LABELSFOR 70 Y2 = X2+1 ;QUICKLINE 80 X1 = Y2+1 90 Y1 = X1+1 0100 ZAE = Y1+1 0110 DX = ZAE+1 0120 DY = DX+1 0130 XS = DY+1 0140 YS = XS+1 0150 E = YS+1 0160 ADR = E+1 ;POINTERS 0170 ADR2 = ADR+2 0180 VEC = ADR2+2 0190 VZAE = VEC+2 0200 VZAE2 = VZAE+1 0210 SCR = VZAE2+1 ;SCROLLREG 0220 ; 0230 SM1 = $E150 ;SCREENMEMORY#1 0240 SM2 = $A150 ;#2 0250 LINKS = $3000 ;TABLEOFLINKBYTES 0260 VANF = LINKS+52 ;TABLEOFCOORDINATES 0270 DL = $9E8D ;DISPLAYLIST 0280 BUBL = $4B34 ;BACKGROUNDGFX 0290 BUBA = BUBL+31*40 0300 TXDL = $9FFB 0310 ; 0320 *= $8000 0330 LINE STX X2 ; QUICKLINE 0340 STY Y2 ; INCL. PLOTROUTINE 0350 TXA ; STARTPOINT 0360 LDX #1 ; IN X1;Y1 0370 STX XS ; END IN X&Y 0380 STX YS 0390 DEX 0400 STX E 0410 SEC 0420 SBC X1 0430 STA DX 0440 BPL DXOK 0450 EOR #$FF 0460 STA DX 0470 INC DX 0480 LDA #$FF 0490 STA XS 0500 DXOK TYA 0510 SEC 0520 SBC Y1 0530 STA DY 0540 BEQ DYZERO 0550 BPL LINLOOP 0560 EOR #$FF 0570 STA DY 0580 INC DY 0590 LDA #$FF 0600 STA YS 0610 BNE LINLOOP 0620 DYZERO LDA #$FF 0630 STA E 0640 LINLOOP LDA X1 0650 CMP X2 0660 BNE LINL2 0670 LDA Y1 0680 CMP Y2 0690 BNE LINL2 0700 RTS 0710 LINL2 LDX X1 0720 LDY Y1 0730 JSR PLOT 0740 LDA E 0750 BPL EPOS 0760 LDA X1 0770 CLC 0780 ADC XS 0790 STA X1 0800 LDA E 0810 CLC 0820 ADC DY 0830 STA E 0840 JMP LINLOOP 0850 EPOS LDA Y1 0860 CLC 0870 ADC YS 0880 STA Y1 0890 LDA E 0900 SEC 0910 SBC DX 0920 STA E 0930 JMP LINLOOP 0940 ; 0950 PLOT LDA ADRL,Y 0960 STA ADR 0970 PLOT2 LDA ADR1H,Y 0980 STA ADR+1 0990 LDY DIV4,X 1000 TXA 1010 AND #3 1020 TAX 1030 LDA (ADR),Y 1040 ORA BITS,X 1050 STA (ADR),Y 1060 RTS 1070 ; 1080 INIPLOT LDX #0 ; INITIALIZE 1090 LDA #SM1 1120 STA ADR+1 1130 LDA #>SM2 1140 STA ADR2+1 1150 IPLOOP LDA ADR 1160 STA ADRL,X 1170 LDA ADR+1 1180 STA ADR1H,X 1190 LDA ADR2+1 1200 STA ADR2H,X 1210 LDA ADR 1220 CLC 1230 ADC #40 1240 STA ADR 1250 BCC IPL1@ 1260 INC ADR+1 1270 INC ADR2+1 1280 IPL1@ INX 1290 CPX #180 1300 BNE IPLOOP 1310 LDA #VANF 1340 STA ADR+1 1350 LDX #0 1360 IPL2@ LDA ADR 1370 STA VECL,X 1380 LDA ADR+1 1390 STA VECH,X 1400 LDA ADR 1410 CLC 1420 ADC #104 1430 STA ADR 1440 BCC IPL3@ 1450 INC ADR+1 1460 IPL3@ INX 1470 CPX #64 1480 BNE IPL2@ 1490 LDX #0 1500 IPLOOP2 TXA 1510 LSR 1520 LSR 1530 STA DIV4,X 1540 INX 1550 CPX #160 1560 BNE IPLOOP2 1570 LDA #>SM2 1580 STA DL+2 1590 LDA #>SM2+15 1600 STA DL+$62 1610 RTS 1620 ; 1630 ; BITMAP FOR GRAPHICS 15 1640 ; 1650 BITS .BYTE $C0,$30,$C,3 1660 ; 1670 CLR STX ADR+1 ; COPY BCKGR 1680 LDA #<(DL+$A2) ; IN SCREEN 1690 LDX #>(DL+$A2) ; MEMORY 1700 STA ADR2 1710 STX ADR2+1 1720 LDX #155 1730 LDY #0 1740 CRL3L LDA ADR1H,X 1750 STA (ADR2),Y 1760 INY 1770 INY 1780 INY 1790 DEX 1800 CPX #87 1810 BNE CRL3L 1820 LDA #BUBL 1870 STA ADR2+1 1880 LDX #23 1890 LDY #0 1900 CRL1 LDA (ADR2),Y 1910 STA (ADR),Y 1920 INY 1930 BNE CRL1 1940 INC ADR+1 1950 INC ADR2+1 1960 DEX 1970 BPL CRL1 1980 LDY #95 1990 CRL2 LDA (ADR2),Y 2000 STA (ADR),Y 2010 DEY 2020 BPL CRL2 2030 RTS 2040 SWITCH LDA PLOT2+1 ; SWITCHING 2050 CMP #ADR2H 2100 STA PLOT2+2 2110 LDA #ADR1H 2140 STA CRL3L+2 2150 LDA #>SM1 2160 STA DL+2 2170 LDA #>SM1+15 2180 STA DL+$62 2190 LDX #>SM2 2200 BNE CLR 2210 SWI1 LDA #ADR1H 2240 STA PLOT2+2 2250 LDA #ADR2H 2280 STA CRL3L+2 2290 LDA #>SM2 2300 STA DL+2 2310 LDA #>SM2+15 2320 STA DL+$62 2330 LDX #>SM1 2340 JMP CLR 2350 DLI PHA 2360 TXA 2370 PHA 2380 TYA 2390 PHA 2400 LDX #0 2410 DLILOOP LDA TOEN,X 2420 STA $D40A 2430 STA $D01A 2440 AND #15 2450 TAY 2460 BEQ DLI1@ 2470 DEY 2480 DLI1@ STY $D016 2490 STY $D017 2500 STY $D018 2510 INX 2520 CPX #68 2530 BNE DLILOOP 2540 LDA #8 2550 LDY #10 2560 LDX #14 2570 STA $D40A 2580 STA $D016 2590 STY $D017 2600 STX $D018 2610 PLA 2620 TAY 2630 PLA 2640 TAX 2650 PLA 2660 STA $D40F 2670 RTI 2680 TOEN .BYTE 0 2690 *=TOEN+68 2700 TOEN2 .BYTE $60,0,$60,$62,0,$50,$52,$54,$52,0 2710 .BYTE $50,$42,$54,$46,$54,0,$40,$42,$44,$46,$48,$46,0 2720 .BYTE $40,$32,$44,$36,$48,$3A,$48,0 2730 .BYTE $30,$32,$34,$36,$38,$3A,$3C,$3A,0 2740 .BYTE $20,$22,$24,$26,$28,$2A,$2C,$2E,$2C,$2A,0 2750 .BYTE $10,$12,$14,$16,$18,$1A,$1C,$1E,$1E,$1C,$1A,$18,$16,$14,$12,$10,0 2760 ; 2770 ; MAINPROCEDURE 2780 ; 2790 N LDA #0 ; STARTLABEL 2800 STA $D40E 2810 STA $D20E 2820 LDX #4 2830 SETC0 STA $D016,X 2840 STA 708,X 2850 DEX 2860 BPL SETC0 2870 LDX #67 2880 SETC01 STA TOEN,X 2890 DEX 2900 BPL SETC01 2910 LDA #$FE 2920 STA $D301 2930 LDA #NMI 2950 STA $FFFA 2960 STX $FFFB 2970 LDX #>SM1 2980 JSR ERASE 2990 LDX #>SM2 3000 JSR ERASE 3010 LDA #
DL 3030 STA $D402 3040 STX $D403 3050 LDA #$9C 3060 STA $D409 3070 LDA #TXT 3090 STA TXDL 3100 STX TXDL+1 3110 JSR INIPLOT 3120 LDA #0 3130 STA VZAE2 3140 STA SCR 3150 STA $13 3160 STA $14 3170 JSR $6407 ; MUSICINIT 3180 LDA #$C0 3190 STA $D40E 3200 IWAIT LDA $14 3210 CMP #150 3220 BNE IWAIT 3230 LDA #0 3240 STA $14 3250 MAIN LDX VZAE2 3260 LDA VECL,X 3270 STA VEC 3280 LDA VECH,X 3290 STA VEC+1 3300 JSR SWITCH 3310 LDA #0 3320 STA VZAE 3330 MLOOP LDA VZAE 3340 TAX 3350 ASL 3360 TAY 3370 LDA (VEC),Y 3380 STA X1 3390 INY 3400 LDA (VEC),Y 3410 STA Y1 3420 LDA LINKS,X 3430 ASL 3440 TAY 3450 LDA (VEC),Y 3460 TAX 3470 INY 3480 LDA (VEC),Y 3490 TAY 3500 JSR LINE 3510 INC VZAE 3520 LDA VZAE 3530 CMP #52 3540 BNE MLOOP 3550 INC VZAE2 3560 LDA VZAE2 3570 AND #$3F 3580 STA VZAE2 3590 LDA $640B 3600 BNE ENDE 3610 LDA #8 3620 STA $D01F 3630 LDA $D01F 3640 AND #1 3650 BEQ ENDE 3660 JMP MAIN 3670 ENDEINC $D301 3680 JMP $E474 3690 ; 3700 NMI BIT $D40F 3710 BPL VBI 3720 JMP DLI 3730 VBI PHA 3740 TXA 3750 PHA 3760 TYA 3770 PHA 3780 INC $14 3790 BNE VBI0 3800 INC $13 3810 VBI0 LDA $14 3820 AND #3 3830 BNE VBI1 3840 LDA $13 3850 CMP #3 3860 BNE VBI1 3870 LDX #2 3880 BLEND LDA 708,X 3890 ORA COL,X 3900 STA 708,X 3910 CMP RCOL,X 3920 BEQ BL2 3930 INC 708,X 3940 INC 708,X 3950 BL2 DEX 3960 BPL BLEND 3970 LDX #67 3980 BLEND2 LDA TOEN2,X 3990 AND #$F0 4000 ORA TOEN,X 4010 STA TOEN,X 4020 CMP TOEN2,X 4030 BEQ BL22 4040 INC TOEN,X 4050 INC TOEN,X 4060 BL22 DEX 4070 BPL BLEND2 4080 VBI1 LDA 708 4090 LDY 709 4100 LDX 710 4110 STA $D016 4120 STY $D017 4130 STX $D018 4140 LDA #0 4150 STA $D01A 4160 JSR $7BA1 ; MUSICPLAY 4170 DEC SCR 4180 BPL NOSCRL 4190 LDA #3 4200 STA SCR 4210 INC TXDL 4220 BNE NOSCRL 4230 INC TXDL+1 4240 NOSCRL LDA SCR 4250 STA $D404 4260 PLA 4270 TAY 4280 PLA 4290 TAX 4300 PLA 4310 STA $D40F 4320 RTI 4330 ; 4340 ERASELDA #