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