吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2434|回复: 1
收起左侧

[会员申请] 申请会员ID:王者归来1

[复制链接]
吾爱游客  发表于 2016-5-2 00:34
1、申 请 I D :                                    王者归来1
2、个人邮箱:service@52pojie.cn     wg1978wg1978@163.com
3、原创技术文章:08年写的一个小游戏:
[Asm] 纯文本查看 复制代码
DATA    SEGMENT
  SEGMENT1C DW 0
  OFF1C DW 0 
  SCORE DB 5 DUP('0'),'$'
  PADMSG DB 44 DUP(219)
  TMPMSG DB 25 DUP(?)
  STARTMSG1 DB 0DH,0AH,'SELECT SPEED.',0DH,0AH,'$'
  STARTMSG2 DB 20H,20H,'1. FAST',0DH,0AH,'$'
  STARTMSG3 DB 20H,20H,'2. MIDDLE',0DH,0AH,'$'
  STARTMSG4 DB 20H,20H,'3. SLOW',0DH,0AH,'$'
  STARTMSG5 DB 20H,20H,'0. EXIT',0DH,0AH,'$'
  ENDMSG  DB 0DH,0AH,'GOOD BYE!',0DH,0AH,'$'
  SCOREMSG1       DB      201,11 DUP(205),187
  SCOREMSG2       DB      186,'SCORE:     ',186
  SCOREMSG3       DB      204,11 DUP(205),185
  SCOREMSG4       DB      186,'LEFT  : A  ',186
  SCOREMSG5       DB      186,'RIGHT : D  ',186
  SCOREMSG6       DB      186,'UP    : W  ',186
  SCOREMSG7       DB      186,'DOWN  : S  ',186
  SCOREMSG8       DB      186,'-----------',186
  SCOREMSG9       DB      186,'EXIT  : ESC',186
  SCOREMSG10      DB      200,11 DUP(205),188
  SPEED DB 0
  TIM DB 0
  CON DB ?
  NUM DW ?
  PADMSG1 DB 400 DUP(?,?,?)
  FORM  DB 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
       DB 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
 DATA ENDS 

 STACK SEGMENT STACK
  DB 200 DUP(?)
 STACK ENDS 

 CODE SEGMENT
  ASSUME  CS:CODE,DS:DATA,ES:DATA,SS:STACK
 START:  MOV AX,DATA
  MOV DS,AX
  PUSH DS
  ;GET INT 1C ADRESS
  MOV AL,1CH
  MOV AH,35H
  INT 21H
  MOV SEGMENT1C,ES
  MOV OFF1C,BX
  ;SET INT 1C ADRESS
  MOV DX,OFFSET INT1C
  MOV AX,SEG INT1C
  MOV DS,AX
  MOV AL,1CH
  MOV AH,25H
  INT 21H
  POP DS
  
 GAMEOVER: 
  MOV AH,00H
  MOV AL,03H
  INT  10H
 SELECTSPEED:
  MOV AH,09H
  MOV DX,OFFSET STARTMSG1
  INT 21H
  MOV DX,OFFSET STARTMSG2
  INT 21H
  MOV DX,OFFSET STARTMSG3
  INT 21H
  MOV DX,OFFSET STARTMSG4
  INT 21H
  MOV DX,OFFSET STARTMSG5
  INT 21H
  MOV AH,08H
  INT  21H
  SUB AL,'0'
  MOV CL,AL
  AND AL,3
  CMP AL,CL
         JNE     SELECTSPEED
         INC AL
  INC CL
  MUL CL
         CMP     AL,1H
         JE EXIT1
  MOV SPEED,AL
   
  ;SET GRAPHICS
  MOV AH,00H
  MOV AL,12H
  INT 10H
  MOV AH,0BH
  MOV BH,01
  MOV BL,00H
  INT 10H
  ;START  GAME
  CALL INITGAME
  CALL DISPSCORE
  CALL RANDOM
  CALL  DELAY
  
 MOV TIM,0H
 LOOP1:
  STI
  CMP CON,0
  JZ LOOP11
  MOV DL,07H
  MOV AH,02H
  INT  21H
  MOV AH,08H
  INT  21H
  JMP GAMEOVER
 LOOP11:
  
  MOV AL,TIM
  CMP AL,SPEED
  JG TIME
  JMP LOOP1

 TIME: 
  MOV TIM,0H
  MOV  AH,1
  INT  16H
  JNZ  FLAG3
  CALL BLANK 
   JMP LOOP1
 FLAG3:
  MOV  AH,0
  INT  16H
  PUSH AX
  MOV  AH,1
  INT  16H
 JZ FLAG2
   POP AX
  JMP FLAG3
  EXIT1:
 JMP EXIT
 FLAG2:
   POP AX
    CMP  AL,1BH
    JZ  EXIT
    CMP AL,'a'
    JZ KA
    CMP AL,'s'
    JZ KS
    CMP AL,'d'
    JZ KD
    CMP AL,'w'
    JZ KW
    CALL BLANK
    JMP LOOP1
 KA:
  CALL LEFT
  JMP  LOOP1
 KS:
 CALL DOWN   
  JMP LOOP1
 KD:
 CALL  RIGHT
  JMP LOOP1
 KW:
  CALL  UP
  JMP LOOP1

 EXIT: 
  ;SET GRAPHICS
  MOV AX,0003H
  INT  10H
  MOV AX,DATA
  MOV DS,AX
  MOV DX,OFFSET ENDMSG
  MOV AH,09H
  INT  21H
  ;SET INT 1C ADRESS
  MOV DX,OFF1C
  MOV AX,SEGMENT1C
  MOV DS,AX
  MOV AL,1CH
  MOV AH,25H
  INT 21H
  MOV AX,4C00H
  INT 21H 

 INT1C PROC
  STI
  PUSH AX
  PUSH DX
  MOV AX,DATA
  MOV DS,AX
  INC TIM
  POP  DX
  POP AX
  IRET
 INT1C ENDP 

 LEFT PROC NEAR
  MOV SI,0
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV CH,PADMSG1[SI]
  MOV CL,PADMSG1[SI+1]
  CMP PADMSG1[SI+2],1
  JNZ LEFT1
  CALL CHECK1
  JMP LEXIT1
 LEFT1:
  CALL CHECK3
 LEXIT1:
  RET
 LEFT ENDP

 RIGHT PROC NEAR
  MOV SI,0
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV CH,PADMSG1[SI]
  MOV CL,PADMSG1[SI+1]
  CMP PADMSG1[SI+2],3
  JNZ RIGHT1
  CALL CHECK3
  JMP REXIT1
 RIGHT1:
  CALL CHECK1
 REXIT1:
  RET
 RIGHT ENDP

 CHECK1 PROC NEAR
  MOV AL,CH
  SUB AL,3
  MOV BL,22
  MUL BL
  MOV SI,0
  ADD SI,AX
  ADD CL,2
  SHR CL,1
  SUB CL,2
  MOV CH,0
  ADD SI,CX
  CMP FORM[SI],0
  JNZ CHECK11
  CALL FORM10
  JMP C1EXIT1
 CHECK11:
  CMP FORM[SI],1
  JNZ CHECK12
  CALL FORM11
  JMP C1EXIT1
 CHECK12:
  CMP FORM[SI],3
  JNZ CHECK13
  CALL FORM13
  JMP C1EXIT1
 CHECK13:
  MOV CON,1
 C1EXIT1:
  RET
 CHECK1 ENDP


 FORM10 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV DH,[SI]
  MOV DL,[SI+1]
  CALL DISPCELL
  MOV DI,SI
  ADD SI,3
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  MOV CX,AX
  CLD
 FORM101:
  LODSB
  STOSB
 LOOP FORM101
  DEC DI
  MOV BYTE PTR [DI],1
  DEC SI
  MOV BYTE PTR [SI],1
  DEC SI
  ADD BYTE PTR [SI],2
  MOV DH,[SI-1]
  MOV DL,[SI]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  RET
 FORM10 ENDP
  

 FORM11 PROC NEAR
  MOV SI,OFFSET PADMSG1
  MOV CH,[SI]
  MOV CL,[SI+1]
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV BH,[SI]
  MOV BL,[SI+1]
  ADD BL,2
  CMP BH,CH
  JNZ FORM111
  CMP BL,CL
  JNZ FORM111
  CALL FORM10
  JMP F11EXIT1
 FORM111:
  MOV CON,1
 F11EXIT1:
  RET
 FORM11 ENDP

 FORM13 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV AX,NUM
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV AL,[SI-3]
  MOV [SI],AL
  MOV AL,[SI-2]
  ADD AL,2
  MOV [SI+1],AL
  MOV BYTE PTR [SI-1],1
  MOV BYTE PTR [SI+2],1
  INC NUM
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  INC SCORE[4]
  MOV CX,05H
  MOV SI,04H
 FORM131: CMP SCORE[SI],'9'
  JNG FORM132
  INC SCORE[SI-1]
  SUB SCORE[SI],0AH
 FORM132: DEC SI
  LOOP FORM131
  CALL DISPSCORE
  CALL RANDOM
  RET
 FORM13 ENDP

 CHECK3 PROC NEAR
  MOV AL,CH
  SUB AL,3
  MOV BL,22
  MUL BL
  MOV SI,0
  ADD SI,AX
  SUB CL,2
  SHR CL,1
  SUB CL,2
  MOV CH,0
  ADD SI,CX
  CMP FORM[SI],0
  JNZ CHECK31
  CALL FORM30
  JMP C3EXIT1
 CHECK31:
  CMP FORM[SI],1
  JNZ CHECK32
  CALL FORM31
  JMP C3EXIT1
 CHECK32:
  CMP FORM[SI],3
  JNZ CHECK33
  CALL FORM33
  JMP C3EXIT1
 CHECK33:
  MOV CON,1
 C3EXIT1:
  RET
 CHECK3 ENDP

 FORM30 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV DH,[SI]
  MOV DL,[SI+1]
  CALL DISPCELL
  MOV DI,SI
  ADD SI,3
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  MOV CX,AX
  CLD
 FORM301:
  LODSB
  STOSB
 LOOP FORM301
  DEC DI
  MOV BYTE PTR [DI],3
  DEC SI
  MOV BYTE PTR [SI],3
  DEC SI
  SUB BYTE PTR [SI],2
  MOV BL,01010101B
  MOV DH,[SI-1]
  MOV DL,[SI]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  RET
 FORM30 ENDP

 FORM31 PROC NEAR
  MOV SI,OFFSET PADMSG1
  MOV CH,[SI]
  MOV CL,[SI+1]
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV BH,[SI]
  MOV BL,[SI+1]
  SUB BL,2
  CMP BH,CH
  JNZ FORM311
  CMP BL,CL
  JNZ FORM311
  CALL FORM30
  JMP F31EXIT1
 FORM311:
  MOV CON,1
 F31EXIT1:
  RET
 FORM31 ENDP
  
 FORM33 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV AX,NUM
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV AL,[SI-3]
  MOV [SI],AL
  MOV AL,[SI-2]
  SUB AL,2
  MOV [SI+1],AL
  MOV BYTE PTR [SI-1],3
  MOV BYTE PTR [SI+2],3
  INC NUM
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  INC SCORE[4]
  MOV CX,05H
  MOV SI,04H
 FORM331: CMP SCORE[SI],'9'
  JNG FORM332
  INC SCORE[SI-1]
  SUB SCORE[SI],0AH
 FORM332: DEC SI
  LOOP FORM331
  CALL DISPSCORE
  CALL RANDOM
  RET
 FORM33 ENDP

 DOWN PROC NEAR
  MOV SI,0
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV CH,PADMSG1[SI]
  MOV CL,PADMSG1[SI+1]
  CMP PADMSG1[SI+2],4
  JNZ DOWN1
  CALL CHECK4
  JMP DEXIT1
 DOWN1:
  CALL CHECK2
 DEXIT1:
  RET
 DOWN ENDP

 UP PROC NEAR
  MOV SI,0
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV CH,PADMSG1[SI]
  MOV CL,PADMSG1[SI+1]
  CMP PADMSG1[SI+2],2
  JNZ UP1
  CALL CHECK2
  JMP UEXIT1
 UP1:
  CALL CHECK4
 UEXIT1:
  RET
 UP ENDP
  
 CHECK2 PROC NEAR
  MOV AL,CH
  SUB AL,2
  MOV BL,22
  MUL BL
  MOV SI,0
  ADD SI,AX
  SHR CL,1
  SUB CL,2
  MOV CH,0
  ADD SI,CX
  CMP FORM[SI],0
  JNZ CHECK21
  CALL FORM20
  JMP C2EXIT1
 CHECK21:
  CMP FORM[SI],1
  JNZ CHECK22
  CALL FORM21
  JMP C2EXIT1
 CHECK22:
  CMP FORM[SI],3
  JNZ CHECK23
  CALL FORM23
  JMP C2EXIT1
 CHECK23:
  MOV CON,1
 C2EXIT1:
  RET
 CHECK2 ENDP

 FORM20 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV DH,[SI]
  MOV DL,[SI+1]
  CALL DISPCELL
  MOV DI,SI
  ADD SI,3
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  MOV CX,AX
  CLD
 FORM201:
  LODSB
  STOSB
 LOOP FORM201
  DEC DI
  MOV BYTE PTR [DI],2
  DEC SI
  MOV BYTE PTR [SI],2
  DEC SI
  DEC SI
  INC BYTE PTR [SI]
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  RET
 FORM20 ENDP 

 FORM21 PROC NEAR
  MOV SI,OFFSET PADMSG1
  MOV CH,[SI]
  MOV CL,[SI+1]
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV BH,[SI]
  MOV BL,[SI+1]
  ADD BH,1
  CMP BH,CH
  JNZ FORM211
  CMP BL,CL
  JNZ FORM211
  CALL FORM20
  JMP F21EXIT1
 FORM211:
  MOV CON,1
 F21EXIT1:
  RET
 FORM21 ENDP

 FORM23 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV AX,NUM
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV AL,[SI-3]
  INC AL
  MOV [SI],AL
  MOV AL,[SI-2]
  MOV [SI+1],AL
  MOV BYTE PTR [SI-1],2
  MOV BYTE PTR [SI+2],2
  INC NUM
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  INC SCORE[4]
  MOV CX,05H
  MOV SI,04H
 FORM231: CMP SCORE[SI],'9'
  JNG FORM232
  INC SCORE[SI-1]
  SUB SCORE[SI],0AH
 FORM232: DEC SI
  LOOP FORM231
  CALL DISPSCORE
  CALL RANDOM
  RET
 FORM23 ENDP
  
 CHECK4 PROC NEAR
  MOV AL,CH
  SUB AL,4
  MOV BL,22
  MUL BL
  MOV SI,0
  ADD SI,AX
  SHR CL,1
  SUB CL,2
  MOV CH,0
  ADD SI,CX
  CMP FORM[SI],0
  JNZ CHECK41
  CALL FORM40
  JMP C4EXIT1
 CHECK41:
  CMP FORM[SI],1
  JNZ CHECK42
  CALL FORM41
  JMP C4EXIT1
 CHECK42:
  CMP FORM[SI],3
  JNZ CHECK43
  CALL FORM43
  JMP C4EXIT1
 CHECK43:
  MOV CON,1
 C4EXIT1:
  RET
 CHECK4 ENDP

 FORM40 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV DH,[SI]
  MOV DL,[SI+1]
  CALL DISPCELL
  MOV DI,SI
  ADD  SI,3
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  MOV CX,AX
  CLD
 FORM401:
  LODSB
  STOSB
 LOOP FORM401
  DEC DI
  MOV BYTE PTR [DI],4
  DEC SI
  MOV BYTE PTR [SI],4
  DEC SI
  DEC SI
  DEC BYTE PTR [SI]
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  RET
 FORM40 ENDP

 FORM41 PROC NEAR
  MOV SI,OFFSET PADMSG1
  MOV CH,[SI]
  MOV CL,[SI+1]
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV BH,[SI]
  MOV BL,[SI+1]
  SUB BH,1
  CMP BH,CH
  JNZ FORM411
  CMP BL,CL
  JNZ FORM411
  CALL FORM40
  JMP F41EXIT1
 FORM411:
  MOV CON,1
 F41EXIT1:
  RET
 FORM41 ENDP

 FORM43 PROC NEAR
  MOV BL,0
  CALL CLEAR0
  MOV SI,OFFSET PADMSG1
  MOV AX,NUM
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV AL,[SI-3]
  DEC AL
  MOV [SI],AL
  MOV AL,[SI-2]
  MOV [SI+1],AL
  MOV BYTE PTR [SI-1],4
  MOV BYTE PTR [SI+2],4
  INC NUM
  MOV DH,[SI]
  MOV DL,[SI+1]
  MOV BL,01010101B
  CALL DISPCELL
  MOV BL,1
  CALL CLEAR0
  INC SCORE[4]
  MOV CX,05H
  MOV SI,04H
 FORM431: CMP SCORE[SI],'9'
  JNG FORM432
  INC SCORE[SI-1]
  SUB SCORE[SI],0AH
 FORM432: DEC SI
  LOOP FORM431
  CALL DISPSCORE
  CALL RANDOM
  RET
 FORM43 ENDP

 CLEAR0 PROC NEAR
  MOV SI,OFFSET PADMSG1
  MOV CX,NUM
 CLEAR01: 
  PUSH BX
  MOV DI,OFFSET FORM
  MOV AL,[SI]
  SUB AL,3
  MOV BL,22
  MUL BL
  ADD DI,AX
  MOV AL,[SI+1]
  SHR AL,1
  SUB AL,2
  MOV AH,0
  ADD DI,AX
  POP BX
  MOV [DI],BL
  ADD SI,3
 LOOP CLEAR01
  RET
 CLEAR0 ENDP

 BLANK PROC NEAR
  MOV SI,0
  MOV AX,NUM
  DEC AX
  MOV BX,3
  MUL BX
  ADD SI,AX
  MOV CH,PADMSG1[SI]
  MOV CL,PADMSG1[SI+1]
  CMP PADMSG1[SI+2],1
  JNZ BLANK1
  CALL CHECK1
  JMP BEXIT1
 BLANK1:
  CMP PADMSG1[SI+2],2
  JNZ BLANK2
  CALL  CHECK2
  JMP BEXIT1
 BLANK2:
  CMP PADMSG1[SI+2],3
  JNZ BLANK3
  CALL CHECK3
  JMP BEXIT1
 BLANK3:
  CALL CHECK4
 BEXIT1:
  RET
 BLANK ENDP

 DELAY PROC NEAR
  PUSH CX
         MOV     CX,00FFH
 LOOP20: LOOP    LOOP20 
  POP CX
  RET
 DELAY ENDP
  
 DISPSCORE PROC NEAR
  MOV AX,DATA
  MOV ES,AX
  MOV BP,OFFSET SCORE
  MOV CX,05H
         MOV     DX,0643H
  MOV BH,0H
  MOV AL,0H
  MOV BL,00110100B
  MOV AH,13H
  INT 10H
  RET
 DISPSCORE ENDP 

 DISPPAD PROC NEAR   ;BX BH=PAGE BL=COLOR
 MOV SI,OFFSET PADMSG1
 MOV CX,NUM
 MOV BH,0

 DISPPAD1:
 MOV DH,[SI]
 MOV DL,[SI+1]
 CALL DISPCELL
 ADD SI,3
 LOOP DISPPAD1 

  RET
 DISPPAD ENDP 

 DISPCELL PROC NEAR;DH=ROW DL=COL BH=PAGE BL=COLOR
  PUSH AX
  PUSH BX
  PUSH CX
  PUSH DX
  PUSH DI
  PUSH SI
  MOV BP,OFFSET PADMSG
  MOV CX,02H
  MOV AX,1300H
  INT  10H
  CMP BL,0H
  JE SKIP20
  ;CALC ROW
  MOV AH,0H
  MOV AL,DH
         MOV     CL,16
  MUL CL
  MOV SI,AX
  ;CALC COL
  MOV AH,0H
  MOV AL,DL
  MOV CL,8
  MUL CL
  MOV DI,AX
  ;DRAW
  MOV AX,0C00H
  MOV DX,SI
         ADD     DX,15
  MOV CX,16
 LOOP21: ADD CX,DI
  DEC CX
  INT 10H
  INC CX
  SUB CX,DI
  LOOP LOOP21
  
         MOV     DX,SI
         MOV     CX,15
         ADD     DI,15
 LOOP22: PUSH    CX
         MOV     CX,DI
         INT     10H
         INC     DX
         POP     CX
         LOOP    LOOP22 

         SUB     DI,2
         DEC     DX
         MOV     CX,13
 LOOP23: PUSH    CX
         DEC     DX
         MOV     CX,DI
         INT     10H
         SUB     CX,12
         MOV     AL,07H
         INT     10H
         MOV     AL,00H
         POP     CX
         LOOP    LOOP23 

         MOV     AX,0C07H
  MOV DX,SI
         ADD     DX,1
         MOV     CX,12
         SUB     DI,12
 LOOP24: ADD     CX,DI
  INT 10H
  SUB CX,DI
         LOOP    LOOP24
  
 SKIP20: POP SI
  POP DI
  POP DX
  POP CX
  POP BX
  POP AX
  RET
 DISPCELL ENDP
  
 CLS PROC NEAR
  MOV CX,0
  MOV DH,24
  MOV DL,79
  MOV BH,0
  MOV AX,600H
  INT 10H
  RET
 CLS ENDP 

 RANDOM PROC NEAR
 RANDOM1:
  IN AX,40H
  INC AH
  INC AL
  AND AH,15
  MOV DH,AH
  AND AL,15
  MOV DL,AL
  IN AX,40H
  INC AH
  INC AL
  AND AH,3
  ADD DH,AH
  AND AL,3
  ADD DL,AL
  IN AX,40H
  INC AH
  INC AL
  AND AH,1
  ADD DH,AH
  AND AL,1
  ADD DL,AL
  
  MOV SI,0
  MOV AL,DH
  INC AL
  MOV BL,22
  MUL BL
  ADD SI,AX
  MOV AL,DL
  INC AL
  MOV AH,0
  ADD SI,AX
  CMP FORM[SI],0
  JNZ RANDOM1
  
  MOV FORM[SI],3
  ADD DH,4
  SHL DL,1
  ADD DL,6
  MOV BL,01011001B
  MOV BH,0
  CALL  DISPCELL
  RET
 RANDOM ENDP
  


 INITGAME PROC NEAR
  CALL CLS
  ;DRAW   TEXTFRAME
  MOV AX,DATA
  MOV ES,AX
         MOV     CX,10
  MOV BP,OFFSET SCOREMSG1
         MOV     DX,053CH
 LOOP72: PUSH CX
         MOV     CX,13
  MOV AL,0H
  MOV BH,0H
         MOV     BL,01011010B
  MOV AH,13H
  INT 10H
         ADD     BP,13
  INC DH
  POP CX
  LOOP LOOP72
  
  ;DRAW BOARDFRAME
  MOV BP,OFFSET PADMSG
         MOV     CX,0044
         MOV     DX,0304H
  MOV BH,0H
  MOV AL,0H
  MOV BL,00110100B
  MOV AH,13H
  INT 10H
         MOV     DX,1804H
  INT 10H 

  MOV CX,20
         MOV     DX,0304H
 LOOP4: MOV SI,CX
  MOV CX,02
  INC DH
  INT 10H
  MOV CX,SI
  LOOP LOOP4 

  MOV CX,20
         MOV     DX,032EH
 INITGAME1: MOV SI,CX
  MOV CX,02
  INC DH
  INT 10H
  MOV CX,SI
  LOOP INITGAME1
  ;FORMAT SCORE
  MOV DI,OFFSET SCORE
  MOV AL,'0'
  MOV CX,05H
  REP STOSB
  
 MOV CON,0
 MOV NUM,4
 MOV DI,OFFSET PADMSG1
 MOV CX,1200
 MOV AX,0
 CLD
 REP STOSB
 MOV SI,OFFSET FORM
 MOV CX,484
 IN1:
  MOV AL,[SI]
  CMP AL,1
  JNZ IN2
  MOV BYTE PTR [SI],0
  JMP IN3
 IN2:
  CMP AL,3
  JNZ IN3
  MOV BYTE PTR [SI],0
 IN3:
  INC SI
  LOOP IN1

 MOV SI,OFFSET FORM
 ADD SI,46
 MOV BYTE PTR [SI],1
 INC SI
 MOV BYTE PTR [SI],1
 INC SI
 MOV BYTE PTR[SI],1
 INC SI
 MOV BYTE PTR [SI],1

 MOV SI,OFFSET PADMSG1
 MOV AL,5
 MOV [SI],AL
 INC SI
 MOV AL,8
 MOV [SI],AL
 INC SI
 MOV AL,1
 MOV [SI],AL
 INC SI

 MOV AL,5
 MOV [SI],AL
 INC SI
 MOV AL,10
 MOV [SI],AL
 INC SI
 MOV AL,1
 MOV [SI],AL
 INC SI

 MOV AL,5
 MOV [SI],AL
 INC SI
 MOV AL,12
 MOV [SI],AL
 INC SI
 MOV AL,1
 MOV [SI],AL
 INC SI

 MOV AL,5
 MOV [SI],AL
 INC SI
 MOV AL,14
 MOV [SI],AL
 INC SI
 MOV AL,1
 MOV [SI],AL

 MOV BL,01010101B
 CALL DISPPAD
  RET
 INITGAME ENDP 

 CODE ENDS
  END START 

   


原帖在这里:http://bbs.bccn.net/thread-199809-1-1.html

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2016-5-3 17:06
请在原帖网站发个贴证明是你本人申请的吧。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 21:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表