10 REM"ROBOCOP Demonstration 20 REM"______________________ 30 REM 40 REM"This Demonstration By 50 REM"Duncan Lilly - DJL Software 60 REM 70 REM"Released Into The 80 REM"Public Domain 12th November 90 REM"1990. 100 : 110 MODE 5 120 VDU 23;8202;0;0;0;0; 130 VDU 19,7,6,0,0,0,0 140 *LOAD R.ROBOCOP 150 PROCmessage 160 IF G$="" THEN GOTO 150 170 PROCsprite_assm 180 CHAIN "R.EDANIM" 190 : 200 DEFPROCsprite_assm 210 XORD=&70:YORD=&72 220 WIDE=&74:HIGH=&75 230 SDAT=&76:SDATOLD=&7A 240 SCRN=&78:SCRNOLD=&7C 250 ZSCRN=&7E 260 WIDEOLD=&80:HIGHOLD=&81 270 SMODE=1 280 IF SMODE>3 SMODE1=2 ELSE SMODE1=1 290 IFSMODE=0 SMODE2=3 ELSEIF SMODE=1 OR SMODE=4 SMODE2=2 ELSE SMODE2=1 300 LINSTEP=&280/SMODE1 310 FOR I%=0 TO 2 STEP 2 320 P%=&900:[OPT I% 330 .SPRITEMOVE 340 JSR SPLOT 350 .SPRITE 360 LDA YORD 370 LSR YORD+1 380 ROR A 390 LSR YORD+1 400 ROR A 410 EOR #255 420 TAX 430 LSR A 440 LSR A 450 AND #&FE 460 TAY 470 LDA TABLE+1,Y 480 STA SCRN+1 490 TXA 500 AND #7 510 CLC 520 ADC TABLE,Y 530 STA SCRN 540 LDA XORD 550 LDX #SMODE1 560 .CONVERT1 570 LSR XORD+1 580 ROR A 590 DEX 600 BNE CONVERT1 610 AND #&F8 620 CLC 630 ADC SCRN 640 STA SCRN 650 LDA SCRN+1 660 ADC XORD+1 670 STA SCRN+1 680 LDA WIDE 690 ADC #1 700 LDX #SMODE2 710 .CONVERT2 720 LSR A 730 DEX 740 BNE CONVERT2 750 STA WIDE 760 JSR COPYOLD 770 JSR SPLOT 780 .COPYOLD 790 LDA SCRN 800 STA SCRNOLD 810 LDA SCRN+1 820 STA SCRNOLD+1 830 LDA SDAT 840 STA SDATOLD 850 LDA SDAT+1 860 STA SDATOLD+1 870 LDA HIGH 880 STA HIGHOLD 890 LDA WIDE 900 STA WIDEOLD 910 RTS 920 .SPLOT0 930 INC SDATOLD+1 940 BNE SPLOT3 950 .SPLOT 960 LDY SCRNOLD+1 970 LDA SCRNOLD 980 .SPLOT1 990 STY ZSCRN+1 1000 LDX HIGHOLD 1010 LDY #0 1020 STA ZSCRN 1030 .SPLOT2 1040 LDA (ZSCRN),Y 1050 EOR (SDATOLD),Y 1060 STA (ZSCRN),Y 1070 INC SDATOLD 1080 BEQ SPLOT0 1090 .SPLOT3 1100 INC ZSCRN 1110 LDA ZSCRN 1120 AND #7 1130 BEQ SPLOT7 1140 .SPLOT4 1150 DEX 1160 BNE SPLOT2 1170 LDY SCRNOLD+1 1180 LDA SCRNOLD 1190 CLC 1200 ADC #8 1210 STA SCRNOLD 1220 BCS SPLOT6 1230 .SPLOT5 DEC WIDEOLD 1240 BNE SPLOT1 1250 RTS 1260 .SPLOT6 INY 1270 STY SCRNOLD+1 1280 BNE SPLOT5 1290 .SPLOT7 1300 LDA ZSCRN 1310 BEQ SPLOT9 1320 .SPLOT8 1330 CLC 1340 ADC #(LINSTEP-8)MOD256 1350 STA ZSCRN 1360 LDA ZSCRN+1 1370 ADC #(LINSTEP-8)DIV256 1380 STA ZSCRN+1 1390 ASL A 1400 BCC SPLOT4 1410 DEX 1420 TXA 1430 LDX #1 1440 CLC 1450 ADC SDATOLD 1460 STA SDATOLD 1470 BCC SPLOT4 1480 INC SDATOLD+1 1490 BNE SPLOT4 1500 .SPLOT9 1510 INC ZSCRN+1 1520 BNE SPLOT8 1530 .TABLE 1540 ]:P%=P%+64:[OPT I% 1550 .ZEND:]:NEXT 1560 FORI%=0TO31 1570 TABLE!(2*I%)=&8000-(&5000-I%*&280)/SMODE1 1580 NEXT 1590 ENDPROC 1600 : 1610 DEFPROCmessage 1620 PROCinit:PROCassem 1630 RESTORE 2250 1640 LOCAL N%,L%,S%,C% 1650 old$="":READ N% 1660 FOR L%=1 TO N% 1670 READ word$,S%,C% 1680 COLOUR C% 1690 PROCscroll("",word$,12,6,S%) 1700 FOR P%=0 TO 3000:NEXT 1710 PROCscroll(word$,"",12,6,S%) 1720 G$=INKEY$(10):IF G$<>"" THEN ENDPROC 1730 NEXT 1740 ENDPROC 1750 DEF PROCscroll(a$,b$,X%,Y%,S%) 1760 PRINTTAB(X%,Y%)a$ 1770 IF LENb$19 X%=1-R%:Y%=Y%+1 1830 ?xpos=X%-1+R%:?ypos=Y%:?spd=S% 1840 CALL scroll:NEXT:ENDPROC 1850 DEF PROCinit 1860 wrch=&FFEE:word=&FFF1 1870 code=&A00:buf=&60 1880 old=&80:new=&81:xpos=&82 1890 ypos=&83:spd=&84:temp=&85 1900 ENDPROC 1910 DEF PROCassem 1920 FOR L%=0 TO 2 STEP 2 1930 P%=code:[OPT L%:.scroll 1940 LDX #buf MOD 256:LDY #buf DIV 256 1950 LDA old:STA buf:LDA #10:JSR word 1960 LDX buf+8:STX temp 1970 LDX new:STX buf+8 1980 LDX #(buf+8)MOD 256 1990 LDY #(buf+8)DIV 256 2000 JSR word:LDA temp:STA buf+8 2010 .start LDX #0 2020 .lp LDA #31:JSR wrch 2030 LDA xpos:JSR wrch 2040 LDA ypos:JSR wrch 2050 LDA #23:JSR wrch 2060 LDA #255:JSR wrch 2070 LDA buf+1,X:JSR wrch 2080 LDA buf+2,X:JSR wrch 2090 LDA buf+3,X:JSR wrch 2100 LDA buf+4,X:JSR wrch 2110 LDA buf+5,X:JSR wrch 2120 LDA buf+6,X:JSR wrch 2130 LDA buf+7,X:JSR wrch 2140 LDA buf+8,X:JSR wrch 2150 LDA #255:JSR wrch:INX 2160 JSR delay:CPX #9:BNE lp:RTS 2170 .delay 2180 PHA:TXA:PHA:TYA:PHA:LDX spd 2190 .lp2 LDY spd 2200 .lp3 DEY:BNE lp3:DEX:BNE lp2 2210 PLA:TAY:PLA:TAX:PLA:RTS 2220 ]:NEXT:ENDPROC 2230 ENDPROC 2240 REM"Scrolly Message Data 2250 DATA 56 2260 DATA ROBOCOP,150,3 2270 DATA PART,100,1 2280 DATA MAN.,100,1 2290 DATA PART,100,1 2300 DATA MACHINE.,100,1 2310 DATA ALL,120,2 2320 DATA COP.....,120,2 2330 DATA This,100,3 2340 DATA Demo,100,3 2350 DATA By,100,3 2360 DATA Duncan,120,1 2370 DATA Lilly.,120,1 2380 DATA "",50,0 2390 DATA Hello,90,2 2400 DATA to....,90,2 2410 DATA "Dammon,",90,2 2420 DATA "Daniel,",90,2 2430 DATA "Thomas,",90,2 2440 DATA all my,90,2 2450 DATA family,90,2 2460 DATA and,90,2 2470 DATA everyone,90,2 2480 DATA else who,90,2 2490 DATA knows,90,2 2500 DATA me!!!!!,90,2 2510 DATA "",100,0 2520 DATA It's,90,3 2530 DATA really,90,3 2540 DATA exciting,90,3 2550 DATA to see,90,3 2560 DATA the,90,3 2570 DATA growth,90,3 2580 DATA of,90,3 2590 DATA 8-bit,90,1 2600 DATA Public,90,1 2610 DATA Domain,90,1 2620 DATA Software,90,1 2630 DATA and I,90,3 2640 DATA hope it,90,3 2650 DATA survives,90,3 2660 DATA for as,90,3 2670 DATA long as,90,3 2680 DATA the BBC,90,3 2690 DATA micro!!!,90,3 2700 DATA "",100,0 2710 DATA Thank,100,1 2720 DATA You For,100,1 2730 DATA Watching,100,1 2740 DATA This,100,1 2750 DATA Demo.,100,1 2760 DATA "",100,0 2770 DATA PRESS,90,3 2780 DATA ANY KEY,90,3 2790 DATA TO GO,90,3 2800 DATA ON >>>>>,90,3 2810 DATA "",100,0 2820 DATA BYE!!!!!,160,2