📄 ojam.asm
字号:
ORG 0000H
SJMP MAIN
ORG 000BH
LJMP TINT
ORG 0023H
LJMP IOIP
MAIN:MOV P1,#0
TEST:CLR TR0
MOV P0,#0FFH
MOV R0,#0
MOV R4,#0
SETB C
MOV A,P0
MOV B,A
ROR: RRC A
JNC KEY
INC R4
CJNE R4,#08,ROR
JMP TEST
KEY: CLR C
MOV A,R4
SUBB A,#0
JZ GO
MOV A,R4
SUBB A,#1
JZ GO
MOV A,R4
SUBB A,#2
JZ GO
MOV A,R4
SUBB A,#3
JZ GO
MOV A,R4
CJNE A,#4,KEY5
JMP GAME
KEY5:CJNE A,#5,KEY6
JMP GAME
KEY6:CJNE A,#6,KEY7
JMP GAME
KEY7:JMP GAME
GO: MOV TMOD,#01H
SETB EA
SETB TR0
SETB ET0
MOV DPTR,#TAB1
MOV A,R4
RL A
PUSH ACC
MOVC A,@A+DPTR
MOV 050H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 051H,A
MOV A,R4
RL A
PUSH ACC
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV 052H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 053H,A
MOV A,R4
RL A
MOV DPTR,#TAB3
PUSH ACC
MOVC A,@A+DPTR
MOV 054H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 055H,A
MUS: MOV A,R0
MOV DPH,050H
MOV DPL,051H
MOVC A,@A+DPTR
MOV R1,A
MOV A,R0
RL A
PUSH ACC
MOV DPH,052H
MOV DPL,053H
MOVC A,@A+DPTR
JNZ GOON1
JMP TEST
GOON1:MOV TH0,A
MOV R6,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV R7,A
MOV A,R0
MOV DPH,054H
MOV DPL,055H
MOVC A,@A+DPTR
MOV P1,A
MOV P2,#3FH
ACALL DELAY
MOV P0,#0FFH
MOV A,P0
CLR C
SUBB A,B
JZ CNT1
CLR EA
MOV P1,#0FFH
LJMP TEST
CNT1:INC R0
JMP MUS
GAME:SETB EA
SETB ES
SETB ET0
MOV TMOD,#21H
MOV TH1,#0E6H
MOV TL1,#0E6H
MOV SCON,#50H
SETB TR1
MOV A,R4
CLR C
SUBB A,#4
MOV R4,A
MOV DPTR,#TAB1
MOV A,R4
RL A
PUSH ACC
MOVC A,@A+DPTR
MOV 050H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 051H,A
MOV A,R4
RL A
PUSH ACC
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV 052H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 053H,A
MOV A,R4
RL A
MOV DPTR,#TAB3
PUSH ACC
MOVC A,@A+DPTR
MOV 054H,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV 055H,A
REC: MOV R0,#0
PLAY:MOV A,R0
MOV DPH,054H
MOV DPL,055H
MOVC A,@A+DPTR
MOV P1,A
MOV P2,#3FH
DAY1:MOV R2,#0FFH
DAY2:MOV R3,#0FFH
DJNZ R3,$
DJNZ R2,DAY2
SJMP $
OUT: CLR C
SUBB A,#1
JZ RIGHT
WRONG:SETB TR0
MOV TH0,#0FEH
MOV R6,#0FEH
MOV R7,#0E3H
MOV TL0,#0E3H
MOV R2,#0FH
D1: MOV R3,#0FFH
DJNZ R3,$
DJNZ R2,D1
CLR TR0
INC R0
JMP PLAY
RIGHT:SETB TR0
MOV DPH,050H
MOV DPL,051H
MOVC A,@A+DPTR
MOV R1,A
MOV A,R0
RL A
PUSH ACC
MOV DPH,052H
MOV DPL,053H
MOVC A,@A+DPTR
JNZ GOON2
POP ACC
cLR TR0
JMP TEST
GOON2:MOV TH0,A
MOV R6,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV R7,A
MOV TL0,A
MOV A,R0
MOV DPH,054H
MOV DPL,055H
MOVC A,@A+DPTR
MOV P1,A
MOV P2,#3FH
ACALL DELAY
OVER: MOV P0,#0FFH
MOV A,P0
CLR C
SUBB A,B
JZ CNT2
CLR EA
CLR TR0
MOV P1,#0FFH
LJMP TEST
CNT2: INC R0
JMP PLAY
TINT:CPL P1.0
MOV TH0,R6
MOV TL0,R7
RETI
IOIP: CLR RI
MOV A,SBUF
POP DPH
POP DPL
MOV DPTR,#OUT
PUSH DPL
PUSH DPH
RETI
DELAY:
LOP1:MOV R2,#020H
LOP2:MOV R3,#0F0H
LOP3:NOP
NOP
DJNZ R3,LOP3
DJNZ R2,LOP2
DJNZ R1,LOP1
RET
EXIT: NOP
SOUND1: DW 0FD08H,0FD81H,0FDC7H,0FD08H,0FD81H,0FCABH,0FD08H,0FD81H,0FDC7H,0FE21H,0FDC7H,0FD81H,0FC43H,0FD08H,0FCABH,0FCABH,0FD08H,0FD81H,0FCABH,0FD08H,0FB8FH,0FB8FH,0FC43H,0FCABH,0FD08H,0FCABH,0FC0BH,0FB8FH,0FC43H,0FB03H
DW 0FD08H,0FD81H,0FDC7H,0FD08H,0FD81H,0FCABH,0FD08H,0FD81H,0FDC7H,0FE21H,0FDC7H,0FD81H,0FC43H,0FD08H,0FCABH,0FCABH,0FD08H,0FD81H,0FCABH,0FD08H,0FB8FH,0FB8FH,0FC43H,0FCABH,0FD08H,0FCABH,0FC0BH,0FB8FH,0FB03H,0FC43H
DW 0FE21H,0FE21H,0FDC7H,0FE21H,0FDC7H,0FE21H,0FDC7H,0FD81H,0FD81H,0FD08H,0FDC7H,0FD81H,0FC43H,0FCABH,0FC43H,0FCABH,0FD08H,0FD08H,0FD08H,0FCABH,0FD08H,0FE21H,0FE21H,0FE05H,0FDC7H,0FD08H,0FD08H,0FCABH,0FD08H,0FE21H,0FE05H,0FDC7H,0FD08H,0FD81H
DW 0FD08H,0FD81H,0FDC7H,0FD08H,0FD81H,0FCABH,0FD08H,0FD81H,0FDC7H,0FE21H,0FDC7H,0FD81H,0FC43H,0FD08H,0FCABH,0FCABH,0FD08H,0FD81H,0FCABH,0FD08H,0FB8FH,0FB8FH,0FC43H,0FCABH,0FD08H,0FCABH,0FC0BH,0FB8FH,0FB8FH,0FC43H,0
TAP1: DB 8,8,48,8,8,48,8,8,8,16,8,16,8,8,48,8,8,48,8,8,48,8,8,24,8,8,8,8,8,48
DB 8,8,48,8,8,48,8,8,8,16,8,16,8,8,48,8,8,48,8,8,48,8,8,24,8,8,8,8,8,40
DB 8,8,8,40,8,8,8,48,8,8,24,8,16,8,4,4,40,8,8,8,40,8,8,8,40,8,8,24,8,8,8,8,8,48
DB 8,8,48,8,8,48,8,8,8,16,8,16,8,8,48,8,8,48,8,8,48,8,8,24,8,8,8,8,8,48,0
GAME1: DB 2,4,8,8,4,2,16,32,2,4,8,2,16,8,4,2,32,8,16,4,32,2,8,16,32,4,2,8,16,8
DB 2,4,8,8,4,2,16,32,2,4,8,2,16,8,4,2,32,8,16,4,32,2,8,16,32,4,2,8,16,8
DB 4,8,16,32,16,32,2,4,8,16,2,32,16,8,4,16,8,32,2,32,16,4,8,2,16,32,2,4,2,4,8,16,32,8
DB 2,4,8,8,4,2,16,32,2,4,8,2,16,8,4,2,32,8,16,4,32,2,8,16,32,4,2,8,16,8
SOUND2: DW 0FE84H,0FE6DH,0FE84H,0FE6DH,0FE84H,0FE05H,0FE55H,0FE21H,0FDC7H,0FD08H,0FDC7H,0FE05H,0FD08H,0FE05H,0FE21H
DW 0FE84H,0FE6DH,0FE84H,0FE6DH,0FE84H,0FE05H,0FE55H,0FE21H,0FDC7H,0FD08H,0FDC7H,0FE05H,0FD08H,0FE21H,0FE05H,0FDC7H
DW 0FE05H,0FE21H,0FE55H,0FE84H,0FDC7H,0FE99H,0FE84H,0FE55H,0FDC7H,0FE84H,0FE55H,0FE21H,0FDC7H,0FE55H,0FE21H,0FE05H
DW 0FE84H,0FE6DH,0FE84H,0FE6DH,0FE84H,0FE05H,0FE55H,0FE21H,0FDC7H,0FD08H,0FDC7H,0FE05H,0FD08H,0FE21H,0FE05H,0FDC7H,0
TAP2: DB 8,8,8,8,8,8,8,8,40,8,8,40,8,8,48,8,8,8,8,8,8,8,8,40,8,8,40,8,8,8,40
DB 8,8,8,40,8,8,8,40,8,8,8,40,8,8,8,48,8,8,8,8,8,8,8,8,40,8,8,40,8,8,8,48,0
SOUND3: DW 0FB8FH,0FB8FH,0FD08H,0FCABH,0FC43H,0FC0BH,0FC43H,0FC0BH,0FB8FH,0FB03H,0FB8FH,0FB8FH,0FB8FH,0FC43H,0FB8FH,0FC43H,0FCABH,0FCABH,0FD08H,0FD33H,0FD08H,0FCABH,0FD08H,0FD08H,0FD81H,0FDC7H,0FD81H,0FD08H,0FCABH,0FC43H,0FCABH,0FD08H,0FCABH,0FD08H,0FB8FH,0FC0BH,0FC0BH,0FB8FH,0FB03H,0FC0BH,0FB03H,0FA14H,0FC43H,0FC0BH,0FB8FH
DW 0FB8FH,0FDC7H,0FD81H,0FDC7H,0FD08H,0FD81H,0FD08H,0FD81H,0FDC7H,0FD81H,0FCABH,0FCABH,0FD08H,0FD81H,0FD08H,0FCABH,0FD08H,0FC43H,0FB8FH,0FB8FH,0FC43H,0FB8FH,0FB8FH,0FD81H,0FDC7H,0FD08H,0FCABH,0FD08H
DW 0FB8FH,0FDC7H,0FD81H,0FDC7H,0FD08H,0FD81H,0FD08H,0FD81H,0FDC7H,0FD81H,0FCABH,0FCABH,0FD08H,0FD81H,0FD08H,0FCABH,0FD08H,0FC43H,0FB8FH,0FB8FH,0FC43H,0FB8FH,0FB8FH,0FD08H,0FCABH,0FD08H,0FD08H,0FCABH,0FD08H,0FD08H,0FD81H,0FB03H,0FB8FH,0
TAP3: DB 16,16,32,8,8,16,16,16,8,8,112,16,16,32,8,8,16,16,8,8,8,8,112,8,8,48,8,8,48,8,8,48,8,8,64,16,8,8,16,32,8,8,16,16,128
DB 16,32,8,8,8,8,8,8,32,16,16,16,8,8,8,8,64,8,8,48,8,8,48,8,8,8,8,128
DB 16,32,8,8,8,8,8,8,32,16,16,16,8,8,8,8,64,8,8,48,8,8,48,8,8,48,8,8,48,16,48,16,128
SOUND4: DW 0FD08H,0FDC7H,0FDC7H,0FDC7H,0FE05H,0FE21H,0FE05H,0FDC7H,0FD81H,0FD81H,0FDC7H,0FE05H,0FDC7H,0FD08H,0FD08H,0FCABH,0FD08H
DW 0FD81H,0FD81H,0FD81H,0FD08H,0FCABH,0FD08H,0FD81H,0FDC7H,0FE05H,0FE21H,0FE05H,0FDC7H,0FE05H,0FD81H,0FD81H,0FDC7H,0FE05H,0FDC7H
DW 0FE05H,0FE05H,0FE21H,0FE21H,0FE55H,0FE55H,0FE84H,0FE55H,0FE84H,0FEC0H,0FE84H,0FE84H,0FE55H,0FE21H,0FE84H,0FE21H,0FE55H,0FE05H,0FE21H,0FE55H,0FE21H,0FE05H,0FDC7H,0FE21H,0FE05H,0FD81H,0FD81H,0FDC7H,0FE05H,0FDC7H,0
TAP4: DB 16,16,16,16,8,8,8,8,16,16,8,8,16,16,24,8,64,16,16,8,8,8,8,16,8,8,16,8,8,16,16,16,8,8,64
DB 16,16,16,16,16,16,16,8,8,16,16,24,8,64,16,16,16,16,8,8,8,8,16,16,16,16,16,8,8,64
TAB1: DW TAP1,TAP2,TAP3,TAP4
TAB2: DW SOUND1,SOUND2,SOUND3,SOUND4
TAB3: DW GAME1,GAME1,GAME1,GAME1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -