Académique Documents
Professionnel Documents
Culture Documents
ORG 0000H
LJMP MAIN
ORG 000BH ;T0 vector SEC
LJMP pongball
;ORG 001BH ;T1 vector FAST
;LJMP DISPLAY
MAIN:
SETB EA
SETB ET0 ;ENABLE T0 TIMER0 INTTERUPT
SETB TR0 ;START TIMER0
SETB DIR_Y2
CLR GAME
MOV SP,#40
TABEL:
MOV D_COL,#5D
MOV D_COL_V,#00010000B
MOV D_ROW,#7D
MOV D_ROW_V,#10111111B
MOV BLOC_X,#03H
MOV BLOC_Y,#11110111B
;###########################################################
DISPLAY:
MOV A,D_COL FROM TABEL
ADD A,#20H
MOV B,D_COL
MOV D_COL,A
MOV A,@D_COL
MOV D_COL,B
ORL A,D_ROW_V
MOV DOT_ROW,A ;rows
MOV DOT_COL,D_COL_V ;columns
MOV A,D_ROW_V
RR A
MOV D_ROW_V,A
DJNZ D_ROW,DISPLAY_RET
MOV D_ROW,#7D
MOV D_ROW_V,#10111111B
MOV A,D_COL_V
RR A
MOV D_COL_V,A
DJNZ D_COL,DISPLAY_RET
MOV D_COL,#5D
MOV D_COL_V,#00010000B
DISPLAY_RET:
JMP DISPLAY
;###########################################################
PAINT:
MOV A,BLOC_X ;WRITE TO TABEL
ADD A,#20H
MOV R0,A
MOV A,@R0
ANL A,BLOC_Y
MOV @R0,A
RET
;###########################################################
CLRSCR:
;MOV 21H, #0FFH
MOV 22H, #0FFH
MOV 23H, #0FFH
MOV 24H, #0FFH
;MOV 25H, #0FFH
RET
;###########################################################
PONGBALL:
R50: INC R5
CJNE R5,#2D,R51
JMP BATSW1
R51: CJNE R5,#5D,R52
JMP BATSW1
R52: CJNE R5,#7D,R5RET
MOV R5,#0H
JMP BATSW1
R5RET: RETI
;**************************bat control******************************
BATSW1: JB SWL1,CSWR1
MOV A,BAT1
RR A
MOV BAT1,A
CJNE A,#01111110B,BATSW2
MOV BAT1,#11111100B
JMP PAINTBAT
CSWR1: JB SWR1,BATSW2
MOV A,BAT1
RL A
MOV BAT1,A
CJNE A,#00111111B,BATSW2
MOV BAT1,#10011111B
BATSW2:
BATSW: JB SWL2,CSWR2
MOV A,BAT2
RR A
MOV BAT2,A
CJNE A,#01111110B,PAINTBAT
MOV BAT2,#11111100B
JMP PAINTBAT
CSWR2: JB SWR2,PAINTBAT
MOV A,BAT2
RL A
MOV BAT2,A
CJNE A,#00111111B,PAINTBAT
MOV BAT2,#10011111B
PAINTBAT:
CJNE R5,#0D,BALLFORGET
JMP BALL
BALLFORGET:
CALL CLRSCR
CALL PAINT
RETI
;**************************ball control******************************
BALL:
JNB DIR_X,DECLOCX
INC BLOC_X
JMP SETXH
DECLOCX:DEC BLOC_X
;**************************ball logic******************************
SETBAT:
MOV A,R0 ;ROTATE BAT AND BALL EQUALLY
RR A
MOV R0,A
MOV A,B
RR A
MOV B,A
CJNE A,#11001111B,SETBAT ;JMP UNTILL BAT SET
PALYR1: JB PLAY,PALYR2
JB SWL1,PLDR1
SETB DIR_Y
CLR DIR_Y2
JMP LOCY
PLDR1: JB SWR1,PLDR2
CLR DIR_Y
CLR DIR_Y2
JMP BDR1
PLDR2: SETB DIR_Y2
JMP LOCY
PALYR2: JB SWL2,PLDR3
SETB DIR_Y
CLR DIR_Y2
JMP LOCY
PLDR3: JB SWR2,PLDR4
CLR DIR_Y
CLR DIR_Y2
JMP LOCY
PLDR4: SETB DIR_Y2
JMP LOCY
LOCY:
JB DIR_Y2,PAINTIT
JNB DIR_Y,DECLOCY
CJNE BLOC_Y,#11111110B,SETYL
MOV BLOC_Y,#11111101B
CLR DIR_Y
SETB SPKR
JMP PAINTIT
SETYL: MOV A,BLOC_Y
RR A
MOV BLOC_Y,A
JMP PAINTIT
DECLOCY:
CJNE BLOC_Y,#10111111B,SETYH
MOV BLOC_Y,#11011111B
SETB DIR_Y
SETB SPKR
JMP PAINTIT
SETYH: MOV A,BLOC_Y
RL A
MOV BLOC_Y,A
JMP PAINTIT
;************************ball control cont..****************************
PAINTIT:
CALL CLRSCR
CALL PAINT
BALL_RET:
RETI
;##################################################################
GAMEOVER:
JB PLAY,PLAYER2
SETB P1LED
CLR P2LED
SETB DIR_X
JMP GAMESET
PLAYER2:
CLR P1LED
SETB P2LED
CLR DIR_X
GAMESET:
MOV BLOC_X,#03H
MOV BLOC_Y,#11110111B
SETB DIR_Y2
SETB GAME
;DISPLAY MEMORY
MOV 21H, #11100111B
MOV 22H, #0H
MOV 23H, #0H
MOV 24H, #0H
MOV 25H, #11100111B
RETI
;##################################################################
;Adarsh Basawapuram
;adarsh.emc2@gmail.com
;##################################################################