home *** CD-ROM | disk | FTP | other *** search
- 0 L=L+1:IFL=1THENLOAD"MULTIPLEXOR",8,1
- 10 SYS49316
- 20 POKE53280,0:POKE53281,15
- 30 POKE53248+27,255
- 31 POKE53248+37,4:POKE53248+38,6
- 32 FORT=0TO7:POKE16383,2^T:NEXT
- 40 C=20:FORT=0TO31:POKE50240+T,12:POKE50272+T,255:NEXT
- 41 FORT=0TO7:POKE50272+T,254:POKE50272+T+24,254:POKE50304+T,8+16
- 42 POKE50304+24+T,8:NEXT
- 50 FORD=0TO3:C=87:FORT=0TO7:POKE50176+K,C:C=C+24:POKE50208+K,30+D*73:K=K+1
- 60 NEXTT,D
- 65 FORT=8TO23:POKE50304+T,16+8:NEXT
- 70 SYS50688
- 71 GOTO20010
- 90 FORT=0TO31:D=D+.1:POKE50208+T,PEEK(50208+T)+SIN(D)*10:NEXT:SYS50688:RETURN
- 95 POKE50208,50:POKE50176,23:POKE50240,1:SYS50688
- 96 PRINT"[147]HIHI[146]_WATCH THIS SPACE FOR THE DEMO HIHI[146]_SPRITE"
- 97 RETURN
- 100 PRINT"[147] THE CONTROL REGISTER IS VERY DIFFICULT TO FOLLOW SO WATCH CAREFULLY"
- 101 D=0:GOSUB90:Y=9:X=2:GOSUB95:GOSUB102:GOTO190
- 102 PRINT"";
- 110 PRINT"THE CONTROL REGISTER IS A MIXTURE OF"
- 120 PRINT"MSB,SPRITE DATA PRIORITY,MULTICOLOR-"
- 130 PRINT"SELECTION,SPRITE EXPAND X AND Y AND IS SET OUT AS FOLLOWS:"
- 140 PRINT" [176][192][178][192][178][192][178][192][178][192][178][192][178][192][178][192][174] [221] [221] [221] [221] [221] [221] [221] [221] [221]"
- 150 PRINT" [173][192][177][192][177][192][177][192][177][192][177][192][177][192][177][192][189]"
- 170 PRINT" 1 6 3 1 8 4 2 1 2 4 2 6"
- 180 PRINT" 8"
- 181 POKE1024+Y*40+X,160
- 182 RETURN
- 190 PRINT"IF BIT 128 IS SET TO ONE THIS MEANS THATTHE SPRITE WILL APPEAR IN THE";
- 200 PRINT" MSB AREA":POKE50304,128:SYS50688
- 220 Y$="":PRINTY$;"PRESS SPACE TO CONTINUE";:GOSUB50000
- 230 GOTO260
- 240 FORT=15TO24:PRINTLEFT$(Y$,T);" ";:NEXT
- 245 PRINT"";
- 250 RETURN
- 260 GOSUB240:X=X+2:GOSUB102
- 270 PRINT"IF BIT 64 IS SET THEN THE SPRITE WILL BEEXPANDED IN THE X DIRECTION"
- 271 POKE50304,64:SYS50688
- 280 GOSUB50000
- 290 GOSUB240:X=X+2:GOSUB102
- 300 PRINT"IF BIT 32 IS SET THEN THE SPRITE WILL BEEXPANDED IN THE Y DIRECTION"
- 301 POKE50304,32:SYS50688
- 310 GOSUB50000:GOSUB240:X=X+2:GOSUB102
- 320 PRINT"IF BIT 16 IS SET THEN THE SPRITE WILL BEBEHIND THE SCREEN DATA"
- 321 POKE50304,16:SYS50688
- 330 GOSUB50000:GOSUB240:X=X+2:GOSUB102
- 340 PRINT"BIT 8 SETS THE SPRITE INTO MULTICOLOUR"
- 341 POKE50304,8:SYS50688
- 350 GOSUB50000:GOSUB240:X=X+2:GOSUB102
- 360 PRINT"BIT 4 IS NOT USED"
- 361 POKE50304,0:SYS50688
- 365 GOSUB50000:X=X+2:GOSUB102
- 366 PRINT"BIT 2 IS NOT USED":POKE50304,0:SYS50688
- 367 GOSUB50000:X=X+2:GOSUB102
- 368 PRINT"BIT 1 IS NOT USED"
- 369 GOSUB50000:PRINT"[147]"
- 370 K=0:FORD=0TO3:C=87:FORT=0TO7:POKE50176+K,C:C=C+24:POKE50208+K,62+D*50:K=K+1
- 371 NEXTT,D
- 372 FORT=0TO31:POKE50304+T,16:NEXT
- 373 SYS 50688
- 379 RETURN
- 400 PRINT"THESE REGISTERS ARE THE RASTER POSITIONS";:GOSUB90
- 410 PRINT"FOR THE NEXT BLOCK OF EIGHT SPRITES"
- 420 PRINT"IF $C0A0 OR 49312 WAS POKED WITH A $40 OR 64"
- 430 PRINT" THEN THE ACTUAL RASTER POSITION WOULD"
- 440 PRINT"BE $30 OR 48 BECAUSE I HAVE TO SUBTRACT $10 OR 16 SO I CAN DISPLAY";
- 450 PRINT" THE DATA"
- 460 PRINT" THIS CAN BE DONE WITH ALL FOUR REGISTERS"
- 470 GOSUB50000:PRINT"[147]"
- 480 PRINT"THE TOP BORDER CAN BE TURNED ON (I.E"
- 490 PRINT"NORMAL) BY POKEING $C3A3 OR 50083 WITH 0";
- 500 PRINT"POKEING A 1 WILL SWITCH IT OFF SO SPRITES CAN BE DISPLAYED UNDER IT"
- 510 PRINT"PRESS SPACE":GOSUB50000:RETURN
- 20010 PRINT"[147][151] ";
- 20020 PRINT"[152] ";
- 20030 PRINT"[155] ";
- 20040 PRINT"[146] THE OPERATING INSTRUCTIONS FOR THE ";
- 20041 PRINT"AMAZING MULTIPLEXOR WRITTEN BY BALHAZAR";
- 20050 PRINT"[155] ";
- 20060 PRINT"[152] ";
- 20070 PRINT"[151] ";
- 20080 PRINT"[144] ";
- 20160 PRINT" TO USE THIS MULTIPLEXOR IS VERY SIMPLE"
- 20170 PRINT"IT IS LIKE USEING AN EXPANDED VIDEO CHIP";
- 20180 PRINT"BUT A FEW RULES MUST BE FOLLOWED"
- 20190 PRINT"1...NO MORE THAN EIGHT (8) SPRITES MUST BE IN THE SAME HORIZONTAL ";
- 20200 PRINT"STRIP OR THEY WILL FLICKER!"
- 20210 PRINT"2...THE IRQ AT $0314 AND $0315 MUST NOT BE CHANGED"
- 20220 PRINT" PRESS SPACE KEY TO CONTINUE ";
- 20221 FORT=0TO63:POKE255*64+T,216:POKE254*64+T,254:NEXT
- 20230 GOSUB50000
- 20240 PRINT""
- 20241 PRINT"DO YOU WANT DECIMAL OR HEX NUMBERS?(D/H)"
- 20242 GET A$:IFA$="D"THEN30000
- 20243 IFA$<>"H"THEN20242
- 20250 PRINT"[151]THE LOCATIONS TO USED BY THE MULTIPLEXOR"
- 20260 PRINT" $C000-$CFFF ARE USED BY THE PROGRAM"
- 20270 PRINT" $C400-$C41F ARE THE 'X' POSITIONS OF EACH SPRITE"
- 20280 PRINT" $C420-$C43F ARE THE 'Y' POSITIONS OF EACH SPRITE"
- 20290 PRINT" $C440-$C45F ARE THE COLOURS FOR EACH SPRITE"
- 20300 PRINT" $C460-$C47F ARE THE WHATS FOR EACH SPRITE"
- 20310 PRINT" (SIMALAR TO $07F8-$07FF)"
- 20320 PRINT" $C480-$C49F IS THE CONTROL REGISTER"
- 20340 PRINT" TO UPDATE THE SPRITES SYS $C600"
- 20350 PRINT" THIS PLOTS THEIR NEW POSITIONS INTO MEMORY"
- 20351 PRINT" TO START THE MULTIPLEXOR SYS$C0A4"
- 20360 GOTO40000
- 30000 :
- 30250 PRINT"[151]THE LOCATIONS TO USED BY THE MULTIPLEXOR"
- 30260 PRINT" 49152-53247 ARE USED BY THE PROGRAM"
- 30270 PRINT" 50176-50207 ARE THE 'X' POSITIONS OF EACH SPRITE"
- 30280 PRINT" 50208-50239 ARE THE 'Y' POSITIONS OF EACH SPRITE"
- 30290 PRINT" 50240-50303 ARE THE COLOURS FOR EACH SPRITE"
- 30300 PRINT" 50272-50303 ARE THE WHATS FOR EACH SPRITE"
- 30310 PRINT" (SIMALAR TO 2040-2047)"
- 30320 PRINT" 50304-50335 IS THE CONTROL REGISTER"
- 30340 PRINT" TO UPDATE THE SPRITES SYS 50688"
- 30350 PRINT" THIS PLOTS THEIR NEW POSITIONS INTO MEMORY"
- 30360 PRINT" TO START THE MULTIPLEXOR SYS 49316"
- 40000 PRINT" PRESS SPACE KEY TO CONTINUE ";
- 40010 GOSUB50000:GOSUB100
- 40011 PRINT" $C0A0-$C0A3 OR 49312-49315 A NOUGHT MEANS MISS OUT THAT LINE"
- 40012 GOSUB400
- 40013 PRINT" NUMBERS CAN BE DIRECTLY POKED INTO THE $C000 OR 49152 ONWARDS AREA"
- 40014 PRINT" EG. POKE 49152,90 (XPOS)
- 40015 [153]" EG. POKE 49174,90 (YPOS)
- 40016 PRINT" WOULD PRINT A SPRITE 90 DOWN AND 90 ACROSS IF $C0A0-$C0A3 ARE SET"
- 40018 PRINT" PRESS SPACE KEY TO CONTINUE ";
- 40019 GOSUB50000
- 40020 PRINT"[147]THE NAME FOR THE ROUTINE IS 'MULTIPLEXOR'"
- 40021 PRINT"THIS IS FOR THE ROUTINE YOU HAVE BOUGHT"
- 40022 PRINT"LOAD IT IN USING LOAD"+CHR$(34)+"MULTIPLEXOR"+CHR$(34)+",8,1"
- 40028 PRINT" PRESS ANY KEY TO CONTINUE ";
- 40029 GOSUB50000
- 40030 PRINT"[147]THIS BIT IS FOR MORE TECHNICAL PEOPLE SO";
- 40040 PRINT"YOU HAVE BEEN WARNED"
- 40050 PRINT"IF YOU WISH TO BYEPASS THE SORT ROUTINE"
- 40060 PRINT"YOU MAY USE THE AREA 49152-49315 OR $C000-$C0A3"
- 40070 PRINT"49152-49311 IS AN EXACT IMAGE OF 50176 OR $C400 ONWARDS"
- 40080 PRINT"BUT ALL THE Y VALUES MUST BE IN ORDER 49312-49315 OR $C0A0-$C0A3"
- 40090 PRINT"ARE THE POSITIONS OF EACH SPLIT THAT"
- 40091 PRINT"DISPLAY THE NEXT BLOCK OF EIGHT SPRITES"
- 40092 PRINT""
- 40100 PRINT"PRESS SPACE KEY TO LOAD THE MAIN MENU"
- 40120 GOSUB50000
- 40130 POKE53248+21,0
- 40131 POKE53280,2
- 40132 OPEN15,8,15,"I0:":CLOSE15:GOTO40134
- 40134 S$="MENU":LOAD"RTU",8,1
- 50000 IFA$=""THENSTOP
- 50005 READF:IFF=-1THENRESTORE:GOTO50005
- 50006 POKE16383,F
- 50010 GETA$:IFA$<>" "THEN50000
- 50020 RETURN
- 50030 DATA 255,1,2,4,8,16,32,64,128,3,6,12,24,48,96,192,96,48,24,12,6,3,128
- 50040 DATA 64,32,16,8,4,2,1,255,0,255,0,255,0,255,0,255,0,-1
- 60000 REM
-