10 .OPT NO LIST 20 ;micro discount demo (c)Pirx'92 30 ;works only with music module 40 ;loaded at $4800 to $5bb5 50 .INCLUDE #D8:SHORT.SYS 60 .INCLUDE #D8:IO.MAC 70 ;---- 80 .MACRO DLADC 90 ;DLADC LINIA,ADRES: dladc l2,bsk2 0100 TXA 0110 CLC 0120 ADC # <%1 0130 STA %2 0140 LDA # >%1 0150 ADC #0 0160 STA %2+1 0170 .ENDM 0180 ;--- 0190 EK = $5C00 0200 TEXTBEG = $6200 0210 WATER = $B000 0220 MUSADR = $4800 0230 PLAY = $53F4 0240 PMB = $A000 0250 MISSLES = PMB+$0300 0260 PM0 = PMB+$0400 0270 PM1 = PMB+$0500 0280 PM2 = PMB+$0600 0290 PM3 = PMB+$0700 0300 DOCDL = 203 ZERO! 0310 WATKO = 205 0320 LINWID = 240-76 0330 LN = 48 0340 LB = 42 0350 ;--- 0360 *= $2300 0370 JMP CODE 0380 ;==== 0390 DL 0400 DLBUF 0410 .SBYTE " " 0420 .SBYTE " " 0430 .SBYTE " " 0440 .SBYTE " " 0450 .SBYTE " " 0460 .SBYTE " " 0470 .SBYTE " " 0480 ;--- 0490 .BYTE $01+$80 0500 DJMPS .WORD PENDS 0510 PBEGS .BYTE "pppp" 0520 PENDS 0530 .BYTE $66 0540 .WORD LEMPTY 0550 .BYTE $74 0560 DLCHAN .WORD BUFFER-2 0570 .BYTE $34,$34+$80,$34 0580 ;--- 0590 .BYTE $00 0600 .BYTE $01+$80 0610 DJMPS2 .WORD PENDS2 0620 PBEGS2 .BYTE "pppp" 0630 PENDS2 0640 ;--- 0650 .BYTE $01 0660 DJMP .WORD PEND 0670 PBEG .BYTE "pppppppppppppppp" 0680 PEND 0690 .BYTE $74 0700 .WORD LEMPTY 0710 .BYTE $74 0720 BSK0 .WORD L0 0730 .BYTE $74 0740 BSK1 .WORD L1 0750 .BYTE $74 0760 BSK2 .WORD L2 0770 .BYTE $74 0780 BSK3 .WORD L3 0790 .BYTE $74 0800 BSK4 .WORD L4 0810 .BYTE $74+$80 0820 BSK5 .WORD L5 0830 .BYTE $74 0840 BSK6 .WORD L6 0850 .BYTE $74 0860 BSK7 .WORD L7 0870 .BYTE $41 0880 .WORD DL 0890 ;====== 0900 CODE 0910 CLOSE 1 0920 OPEN 1,4,0,"D:TEXT.TXT" 0930 BGET 1,TEXTBEG,$4700,0 0940 CLOSE 1 0950 ; ADD.W #TEXTBEG,$0358,TEXTEND 0960 LDA # TEXTBEG 1010 ADC $0358+1 1020 STA TEXTEND+1 1030 ;-- 1040 OPEN 1,4,0,"D:WATER.TXT" 1050 BGET 1,WATER,$1000,0 1060 CLOSE 1 1070 ; ADD.W #WATER,$0358,WATKO 1080 LDA # WATER 1130 ADC $0358+1 1140 STA WATKO+1 1150 ;-- 1160 LDY #$40 1170 LDA #49 1180 WATKOLOOP 1190 STA (WATKO),Y 1200 DEY 1210 BPL WATKOLOOP 1220 ;--- 1230 POKE 756, >DISCFNT 1240 POKE DIRFLG,0 1250 STA BHSINPTR 1260 DPOKE WATPUT+1,WATER 1270 DPOKE TXADR+1,TEXTBEG 1280 POKE DMACTLS,33+4+8+16 1290 ;-- 1300 POKEY 1310 LDX # MUSADR 1330 LDA #$70 1340 JSR PLAY+3 1350 LDX #0 1360 TXA 1370 JSR PLAY+3 1380 ;-- 1390 JSR SPRITE.RUN 1400 VDL DL 1410 VMAIN MAIN,7 1420 VDLI DLI0.5 1430 ;-- 1440 POKE IRQEN,0 1450 HANG 1500 STOP 1510 ;====+-> 1520 ;====+-> 1530 MAIN 1540 DPOKE $0200,DLI0.5 1550 DPOKE $D402,DL 1560 POKE $D01A,0 1570 POKE $D017,$8C 1580 POKE $D018,$80 1581 POKE $D012,$15 1582 STA $D014 1583 POKE $D013,$19 1584 STA $D015 1590 ;-- 1600 JSR MACHANIE 1610 ;---Md wave 1620 INC HMDPTR 1630 LDX HMDPTR 1640 BPL LESS.128 1650 LDX #0 1660 STX HMDPTR 1670 LESS.128 1680 LDA HSIN,X 1690 SEC 1700 SBC #5 1710 STA MDHPOS 1720 ;--- 1730 INC VMDPTR 1740 LDX VMDPTR 1750 CPX #VSINEND-VSIN 1760 BNE LESS.END 1770 LDX #0 1780 STX VMDPTR 1790 LESS.END 1800 LDA VSIN,X 1810 SEC 1820 SBC #4 1830 TAY 1840 JSR SPRIT.MOVE 1850 ;------- 1860 ;WATER 1870 DPOKE DOCDL,DLBUF 1880 DPOKE ACTEK,EK 1890 ;INCJALIZA 1900 VINC WATPUT+1 1910 ; VCMP WATPUT+1,WATKO,FDAL1 1920 LDA WATPUT+1 1930 CMP WATKO 1940 BNE FDAL1 1950 LDA WATPUT+2 1960 CMP WATKO+1 1970 BNE FDAL1 1980 DPOKE WATPUT+1,WATER 1990 FDAL1 2000 LDX #0 2010 LDY #0 2020 FPTL0 2030 WATPUT LDA WATER,X 2040 INX 2050 ;conversion 2060 AND #$3F 2070 SEC 2080 SBC #48 2090 ;-- 2100 ASL A A=A*32(SZER) 2110 ASL A 2120 ASL A 2130 ASL A 2140 ASL A 2150 CLC 2160 ADC ACTEK 2170 STA ACTEK 2180 BCC FDAL0 STARY+SKOK 2190 INC ACTEK+1 2200 FDAL0 2210 ;--- 2220 LDA ACTEK+1 2230 CMP # >EK+42*32 2240 BCC LESS 2250 LDA ACTEK 2260 CMP # PBEG 2750 ADC #0 2760 STA DJMP+1 2770 ;------ 2780 LDA HSC 2790 AND #$03 2800 EOR #$03 2810 STA HSCROLOG 2820 LDA HSC 2830 LSR A 2840 LSR A 2850 TAX 2860 DLADC L0,BSK0 2870 DLADC L1,BSK1 2880 DLADC L2,BSK2 2890 DLADC L3,BSK3 2900 DLADC L4,BSK4 2910 DLADC L5,BSK5 2920 DLADC L6,BSK6 2930 DLADC L7,BSK7 2940 SYSYQ 2950 JSR PLAY+6 2960 JMP XITVBV 2970 ;------- 2980 MACHANIE 2990 ;czkanie na 36 3000 BVCHECK LDX #0 3010 BEQ NOWAIT 3020 LDA VSCSCR 3030 CMP #36 3040 BNE NOWAIT 3050 LDA BVLOTAB,X 3060 STA BVPUT+1 3070 LDA BVHITAB,X 3080 STA BVPUT+2 3090 LDA BVCMPTAB,X 3100 STA BVEPUT+1 3110 POKE BVCHECK+1,0 3120 STA BVSINPTR 3130 NOWAIT 3140 ;========== 3150 ; MACHANIE 3160 INC BVSINPTR 3170 LDX BVSINPTR 3180 BVEPUT CPX #BVSINE2-BVSIN2 3190 BNE BANGDPA 3200 LDX #0 3210 STX BVSINPTR 3220 BANGDPA 3230 BVPUT LDA BVSIN2,X 3240 STA VSCSCR 3250 ;------ 3260 AND #$07 3270 STA VSCROL 3280 LDA VSCSCR 3290 LSR A 3300 LSR A 3310 LSR A 3320 STA SMIEC 3330 CLC 3340 ADC # PBEGS 3370 ADC #0 3380 STA DJMPS+1 3390 ;--- 3400 LDA # PENDS2 3450 SBC #0 3460 STA DJMPS+1 3470 ;==== 3480 INC XHPTR 3490 LDX XHPTR 3500 XHEPUT CPX #XHTE1-XHT1 3510 BNE NOENDXH 3520 LDX #0 3530 NOENDXH 3540 STX XHPTR 3550 XHPUT LDA XHT1,X 3560 ;===--- 3570 SCROLL 3580 BEQ DPA0 3590 STA HSCROL 3600 RTS 3610 DPA0 3620 ;nowy bajt 3630 DCL WIDTHCTR 3640 BEQ NEXTLETT 3650 INC DLCHAN 3660 LDA #4 3670 STA HSCROL 3680 RTS 3690 NEXTLETT 3700 ;----- 3710 LDX PREWIDTH 3720 LDY #0 3730 MOVELOOP 3740 LDA BUFFER,X 3750 STA BUFFER,Y 3760 LDA BUFFER+LN,X 3770 STA BUFFER+LN,Y 3780 LDA BUFFER+LN*2,X 3790 STA BUFFER+LN*2,Y 3800 LDA BUFFER+LN*3,X 3810 STA BUFFER+LN*3,Y 3820 INX 3830 INY 3840 CPY #LB 3850 BNE MOVELOOP 3860 ;---- 3870 NEXXUS 3880 VINC TXADR+1 3890 ; VCMP TXADR+1,TEXTEND,TXADR 3900 LDA TXADR+2 3910 CMP TEXTEND+1 3920 BNE TXADR 3930 LDA TXADR+1 3940 CMP TEXTEND 3950 BNE TXADR 3960 ; 3970 DPOKE TXADR+1,TEXTBEG 3980 TXADR LDA $FFFF 3990 AND #$7F 4000 TAX 4010 LDA CONVERT,X 4020 TAY 4030 CMP #51 4040 BNE NZ0 4050 POKE XHEPUT+1,XHTE1-XHT1 4060 DPOKE XHPUT+1,XHT1 4070 POKE XHPTR,0 4080 JMP NEXXUS 4090 NZ0 4100 CMP #52 4110 BNE NZ1 4120 POKE XHEPUT+1,XHTE2-XHT2 4130 DPOKE XHPUT+1,XHT2 4140 POKE XHPTR,0 4150 JMP NEXXUS 4160 NZ1 4170 CMP #53 4180 BNE NZZ8 4190 POKE XHEPUT+1,XHTE3-XHT3 4200 DPOKE XHPUT+1,XHT3 4210 POKE XHPTR,0 4220 JMP NEXXUS 4230 NZZ8 4240 CMP #50 4250 BNE NZZ9 4260 POKE XHEPUT+1,XHTE-XHT 4270 DPOKE XHPUT+1,XHT 4280 POKE XHPTR,0 4290 JMP NEXXUS 4300 NZZ9 4310 CMP #54 4320 BNE NZ2 4330 POKE BVCHECK+1,1 4340 JMP NEXXUS 4350 NZ2 4360 CMP #56 4370 BNE NZ3 4380 POKE BVCHECK+1,2 4390 JMP NEXXUS 4400 NZ3 4410 CMP #55 4420 BNE NZ4 4430 POKE BVCHECK+1,3 4440 JMP NEXXUS 4450 NZ4 4460 LDA #4 4470 STA PREWIDTH 4480 STA WIDTHCTR 4490 STA TRPTR+1 4500 TYA 4510 ASL A 4520 ASL A 4530 TAY 4540 ;nowej literki 4550 LDX #0 4560 PUTLOOP 4570 LDA LETTERS,Y 4580 STA BUFFER+LB,X 4590 LDA LETTERS+LINWID,Y 4600 STA BUFFER+LB+LN,X 4610 LDA LETTERS+LINWID*2,Y 4620 STA BUFFER+LB+LN*2,X 4630 LDA LETTERS+LINWID*3,Y 4640 STA BUFFER+LB+LN*3,X 4650 INY 4660 INX 4670 TRPTR CPX #$FF 4680 BNE PUTLOOP 4690 ; 4700 POKE DLCHAN, FNT1 4810 POKE $D016,$C4 4820 POKE $D017,$C8 4830 POKE $D018,$CC 4840 LDA MDHPOS 4850 STA $D000 4860 STA $D001 4870 CLC 4880 ADC #8 4890 STA $D002 4900 STA $D003 4910 ADC #8 4920 STA $D004 4930 STA $D005 4940 ADC #2 4950 STA $D006 4960 STA $D007 4970 DPOKE $0200,DLI1 4980 PLA 4990 RTI 5000 ;---- 5010 DLI1 5020 PHA 5030 LDA # >FNT2 5040 STA WSYNC 5050 STA CHBASE 5060 DPOKE $0200,DLI2 5070 PLA 5080 RTI 5090 ;---- 5100 DLI2 5110 PHA 5120 POKE DMACTL,35+4+8+16 5130 POKE CHBASE, >DISCFNT 5140 MOVE.B HSCROLOG,HSCROL 5150 MOVE.B VSCROLOG,VSCROL 5160 POKE $D017,$64 5170 POKE $D018,$58 5180 POKE $D016,$6C 5190 DPOKE $0200,DLI3 5200 PLA 5210 RTI 5220 ;--- 5230 DLI3 5240 PHA 5250 LDA # >DISCFNT+$0400 5260 STA WSYNC 5270 STA CHBASE 5280 PLA 5290 RTI 5300 ;------- 5310 SPRITE.RUN 5320 POKE PMBASE, >PMB 5330 LDA #0 5340 LDX #4 5350 SPRTL0 5360 STA SIZEP0,X 5370 DEX 5380 BPL SPRTL0 5390 POKE GTIACTLS,32+1 5400 POKE PMCTL,3 5410 POKE 704,$15 5420 STA 706 5430 POKE 705,$19 5440 STA 707 5450 FILL MISSLES,PM3+$0100,$00 5460 RTS 5470 ;------ 5480 SPRIT.MOVE 5490 LDX #0 5500 SPMOVPTL 5510 LDA MDPM0,X 5520 STA PM0,Y 5530 LDA MDPM1,X 5540 STA PM1,Y 5550 LDA MDPM2,X 5560 STA PM2,Y 5570 LDA MDPM3,X 5580 STA PM3,Y 5590 LDA MDMISS,X 5600 STA MISSLES,Y 5610 INY 5620 INX 5630 CPX #53 5640 BNE SPMOVPTL 5650 RTS 5660 ;-------- 5670 HSC .BYTE 0 5680 VSC .BYTE 0 5690 BHSINPTR .BYTE 0 5700 DIRFLG .BYTE 0 5710 ACTEK .WORD 0 5720 HSCROLOG .BYTE 0 5730 VSCROLOG .BYTE 0 5740 ;--- 5750 SMIEC .BYTE 0 5760 XHPTR .BYTE 1 5770 WIDTHCTR .BYTE 1 5780 PREWIDTH .BYTE 1 5790 VSCSCR .BYTE 1 5800 BVSINPTR .BYTE 1 5810 HMDPTR .BYTE 0 5820 VMDPTR .BYTE 0 5830 MDHPOS .BYTE 0 5840 TEXTEND .WORD 0 5850 ;----- 5860 .INCLUDE #D:SINS.M65 5870 ;------ 5880 .INCLUDE #D8:DISCDAT.M65 5890 ;---- 5900 *= $3800 5910 DISCFNT 5920 .INCLUDE #D8:DISCFNT.M65 5930 ;---- 5940 *= $4000 5950 FNT1 .INCLUDE #D8:LONFNT.M65 5960 FNT2 = FNT1+$0400 5970 *= EK 5980 .INCLUDE #D8:ATARIDAT.M65