home *** CD-ROM | disk | FTP | other *** search
- h10 ! ******************** DRAW ***********************
- 110 ! BY MICHAEL RUF
- 120 ! 12/24/78
- 130 ! PROGRAM TO USE THE CROMEMCO DAZZLER TO PLAY A VIDEO GAME ON TV.
- 140 ! GAME-'TRAP'. IN THE GAME, EACH PLAYER CONTROLS A BLOCK THAT
- 150 ! KEEPS TRAVELING IN THE DIRECTION REQUESTED BY THE JOYSTICK
- 160 ! CONTROLLERS (UP,DOWN,LEFT AND RIGHT). THE FIRST PLAYER TO TOUCH
- 170 ! HIS OR HIS OPPONENT'S TRACK OR TOUCH THE WALL LOSES THE MATCH
- 180 !
- 190 ! I.E. (CONCERNING COMMENTS. A DOUBLE DASH(--) IS A MAIN PART,
- 200 ! SINGLE DASH(-) IS WITHIN THAT PART).
- 210 !
- 220 ST=4096*7: ! MEMORY BEGINS AT 7000
- 230 !
- 240 ! -- ASSIGN COUNTERS
- 250 !
- 260 ! - ASSIGN PORTS
- 270 !
- 280 I1=25: ! ANALOG PORT 1, HEX ADDRESS 19
- 290 I2=26: ! ANALOG PORT 2, HEX ADDRESS 1A
- 320 !
- 330 ! -ASSIGN COLORS
- 340 !
- 360 S1=102: ! COLOR OF PLAYFIELD OR SCREEN
- 370 P=153:P0=8: ! PLAYER'S COLOR (RED,HIGH INTENSITY)
- 382 !
- 385 D1=1: ! PLAYERS' STARTING DIRECTIONS
- 390 !
- 400 ! SUBROUTINE-- PRINT PLAYFIELD
- 410 !
- 420 ! FOR LOOP- FILL SCREEN WITH COLOR ASSIGNED (S1)
- 430 !
- 440 FOR S=ST TO ST+2047
- 450 POKE S,S1
- 460 NEXT S
- 470 !
- 1020 !
- 1030 ! -PLAYER ONE'S STARTING BLOCK
- 1040 !
- 1050 ! TOP HALF. IN PAGE 1 OF MEMORY
- 1060 !
- 1070 POKE ST+484,P:P1=ST+484:POKE ST+485,P:POKE ST+500,P:POKE ST+501,P
- 1080 !
- 1090 ! BOTTOM HALF. IN PAGE 3 OF MEMORY
- 1100 !
- 1110 POKE ST+1028,P:POKE ST+1029,P:POKE ST+1044,P:POKE ST+1045,P
- 1120 !
- 5000 !
- 5010 ! SUBROUTINE-- ACCEPT INPUT FROM JOYSTICKS AND CHANGE TO A DIRECTION
- 5020 !
- 5030 ! -PLAYER ONE'S INPUT
- 5040 !
- 5050 V1=INP(I1): ! VERTICAL
- 5060 H1=INP(I2): ! HORAZONTAL
- 5070 !
- 5120 !
- 5130 ! -CHANGE INPUT TO DIRECTION
- 5140 !
- 5150 IF V1>X1 THEN IF V1>50 THEN D1=2 ELSE IF V1<-78 THEN D1=4
- 5160 IF H1>V1 THEN IF H1>50 THEN D1=1 ELSE IF H1<-78 THEN D1=3
- 6000 !
- 6010 ! SUBROUTINE-- MOVE PLAYERS
- 6020 !
- 6024 ! -ESTABLISH PLAYER ONE'S POSITION
- 6026 !
- 6030 IF D1=1 THEN P3=P1+2:IF (P1+1-ST)/15=INT((P1+1-ST)/15) THEN P3=P3+497
- 6040 IF D1=2 THEN P3=P1-64:IF P1<=ST+1026 AND P3>ST+1026 OR P1<ST+1536 AND P3>ST+1536 THEN P3=P3-528
- 6050 IF D1=3 THEN P3=P1-2:IF (P1-ST)/16=INT((P1-ST)/16) THEN P3=P1-498
- 6060 IF D1=4 THEN P3=P1+64:IF P1<=ST+511 AND P3>ST+511 OR P1<=ST+1023 AND P3>ST+1023 THEN P3=P3+528
- 6070 IF P3<ST-32 OR P3>ST+2047 THEN 5000
- 6100 !
- 6200 !
- 6210 ! -MOVE INTO MEMORY
- 6220 !
- 6225 PRINT"MOVE"
- 6230 POKE P3,P:POKE P3+1,P:POKE P3+16,P:POKE P3+17,P
- 6250 IF P3<=ST+511 AND P3+32>ST+511 OR P3<=ST+1023 AND P3+32>ST+1023 THEN P5=P3+544 ELSE P5=P3+32
- 6270 POKE P5,P:POKE P5+1,P:POKE P5+16,P:POKE P5+17,P
- 6290 P1=P3:P2=P4
- 6295 FOR I=1 TO 100:NEXT I
- 6300 GOTO 5000
- 8000 !
- 8010 ! CHANGE COLOR OF BLOCK
- 8020 !
- 8030 P0=P0-1
- 8040 IF P0=0 THEN P0=16
- 8050 P1=Pp*16
- 8060 FOR I=1 TO 100:NEXT I
- 8070 GOTO 5000
- 64000 END
-