⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showhand.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; ***************************************************************************
; *     Project : Electronic Dictionary                                     *
; *        Date : 2003.9                                                    *
; *   File Name : SHOWHAND.ASM                                              *
; ***************************************************************************

        chip      W65C02S
        pw      128
        case    off
        externs on
        include st2202.def      ;; Include ST2100 I/O define.
        include Data.def        ;; Data RAM define.
        include Keydef.def
        include graph.def
        include showhand.def
        include bios.h
        include graphics.h

DS0     .SECTION                ;; Data ROM location 10000h(Bank#2)
blank_pai:
        db      24,36
        db      11111111b,11111111b,11111111b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      10000000b,00000000b,00000001b
        db      11111111b,11111111b,11111111b
HoldWhite:
        db      22,9
        db      00000000b,00000000b,00000001b,00101111b,01000011b,10000100b,10100101b,00001001b
        db      00010010b,10010100b,00100100b,01111010b,01010000b,10010001b,00101001b,01000010b
        db      01000100b,10100101b,00001001b,00010010b,11110111b,10111000b,00000000b,00000000b
        db      00000000b
ShowHandArrow:
        db      7,9
        db      00010000b,01110001b,11110111b,11110000b,00011111b,11011111b,00011100b,00010000b
;;ShowHandBlank:
;;        db      20,24
;;        db      11111111b,11111111b,11111000b,00000000b,00000001b,10000000b,00000000b,00011000b
;;        db      00000000b,00000001b,10000000b,00000000b,00011000b,00000000b,00000001b,10000000b
;;        db      00000000b,00011000b,00000000b,00000001b,10000000b,00000000b,00011000b,00000000b
;;        db      00000001b,10000000b,00000000b,00011000b,00000000b,00000001b,10000000b,00000000b
;;        db      00011000b,00000000b,00000001b,10000000b,00000000b,00011000b,00000000b,00000001b
;;        db      10000000b,00000000b,00011000b,00000000b,00000001b,10000000b,00000000b,00011000b
;;        db      00000000b,00000001b,10000000b,00000000b,00011000b,00000000b,00000001b,10000000b
;;        db      00000000b,00011111b,11111111b,11111111b
ShowHandHeart:
        db      7,8
        db      01101101b,11111111b,11111111b,11111111b,11101111b,10001110b,00001000b
ShowHandDiamond:
        db      7,8
        db      00010000b,01110001b,11110111b,11111111b,11101111b,10001110b,00001000b
ShowHandCry:
        db      16,16
        db      00000111b,11100000b,00011111b,11111000b,00111111b,11111100b,01111111b,11111110b
        db      01101011b,11010110b,11110111b,11101111b,11101011b,11010111b,11111111b,11111111b
        db      11111111b,11111111b,11111111b,11111111b,11111100b,00111111b,11111011b,11011111b
        db      01110111b,11101110b,00111111b,11111100b,00011111b,11111000b,00000111b,11100000b
ShowHandSmile:
        db      16,16
        db      00000111b,11100000b,00011000b,00011000b,00100000b,00000100b,01000000b,00000010b
        db      01000000b,00000010b,10111111b,11111101b,11111110b,01111111b,10011100b,00111001b
        db      10001000b,00010001b,10000000b,00000001b,10001000b,00010001b,10000100b,00100001b
        db      01000011b,11000010b,00100000b,00000100b,00011000b,00011000b,00000111b,11100000b
ShowHandClub:
        db      7,8
        db      00111000b,11111001b,11110111b,11111111b,11101111b,10000100b,00011100b
ShowHandSpade:
        db      7,8
        db      00010000b,01110001b,11110111b,11111111b,11111111b,11000100b,00011100b
ShowHandBetTitle:
        db      '赌注:',0   ;;赌注
ShowHandBetTitleMask:
        db      '     ',0
FONTA:
        db      7,9
        db      00010000b,01110001b,10110110b,00111100b,01111111b,11110001b,11100011b,11000110b
FONTJ:
        db      7,9
        db      00011110b,00011000b,00110000b,01100000b,11000001b,10110011b,01100110b,01111000b
FONTQ:
        db      7,10
        db      01111101b,10001111b,00011110b,00111100b,01111010b,11110111b,10111110b,00001100b
        db      00011100b
FONTK:
        db      7,9
        db      11100110b,11001101b,10110011b,01100111b,10001101b,10011011b,00110011b,11100110b

SHStatusTable:
        db      00000100b              ;;一对
        db      00001000b              ;;二对
        db      00010000b              ;;三条
        db      10000000b              ;;顺子
        db      01000000b              ;;筒花
        db      00010100b              ;;耗子(吃糊)
        db      00100000b              ;;四条
        db      11000000b              ;;同花顺
BankruptTitle:
        db      '   >>','你破产了','<<',0   ;;你破产了

PS0b    .SECTION                ;; Program ROM location 4000h
;;=====================================================
BankNo  equ     GameBank
        Public  ShowHandStart   ;;.
        public  ShowHandKeyin   ;; Key Down
        public  ShowHandTimer   ;; Timer
        public  ShowHandHalfSec

;;=====================================================
;;       梭哈游戏程式区
;;
;;=====================================================
ShowBetTitle:                           ;;
        lda     #56+32                  ;;
        sta     <ox                     ;;
        lda     #0+4                    ;;
        sta     <oy                     ;;
        ldx     #>ShowHandBetTitle      ;; 显示赌注
        ldy     #<ShowHandBetTitle      ;;
        LDrawText                       ;;
        rts                             ;;

ShootStart:                             ;;
ShowHandStart:
        lsetscreen 0
        lda     #02h                    ;; 预设赌金200
        sta     <SHScoreH               ;;
        stz     <SHScoreL               ;;  赌注5
        lda     #5                      ;;
        sta     <Bet                    ;;

ShowHandStart1:
        LClrLcd                         ;; 清除萤幕
        jsr     ShowScore               ;; 显示赌金
        jsr     ShowBetTitle            ;; 显示"赌注"
        lda     #145
        sta     <ox
        lda     #3+4
        sta     <oy
        loprintimage      ShowHandArrow  ;;显示赌注箭头
        jsr     ShowBet                 ;;显示赌注
        lda     #00011111b              ;;
        sta     <CoverCard              ;;
        jsr     ShowAllBlank            ;;显示全部空牌

        ldx     #0
        lda     #0ffh
?1:     sta     <Card1,x                ;; 清除全部牌点牌色
        inx                             ;;
        cpx     #5                      ;;
        bne     ?1                      ;;
        jsr     GetCardValue            ;; 取得空牌新牌点及牌色
        smb6    <FlashOpt

        smb7    <SHBetStatus            ;;设定目前为设定赌注状态
        rmb7    <WinFlag                ;;清除win 旗标
        jmp     jmplmainu
SHEnterKey1:
        jmp     SHEnterKey
ShootKeyin:                             ;; Key Down 事件处理向量
ShowHandKeyIn:                          ;; Key Down 事件处理向量
        lda     <KeyNo
        cmp     #EnterKey
        beq     SHEnterKey1
        bbs7    <WinFlag,?1
        cmp     #UpKey
        beq     SHUpKey
        cmp     #DownKey
        beq     SHDownKey
        cmp     #LeftKey
        beq     SHLeftKey
        cmp     #RightKey
        beq     SHRightKey
?1:
        jmp     jmplmainu
SHUpkey:
        LKeyTone
        bbr7    <SHBetStatus,?SHUpKeyNBet
        jsr     AddBet
        jmp     ShowBetandScore
?SHUpKeyNBet:
        jmp     ShDownKeyNBet
SHDownKey:
        LKeyTone
        bbr7    <SHBetStatus,ShDownKeyNBet
        jsr     SubBet
        jmp     ShowBetandScore

ShDownKeyNBet:
        ldx     <CardIndex
        lda     ValueTran,x
        eor     <CoverCard
        sta     <CoverCard
        jsr     ShowIndexHold
        jmp     jmplmainu

SHLeftKey:
        LKeyTone
        bbr7    <SHBetStatus,?SHLeftKeyNBet
        jsr     AddBet
        jmp     ShowBetandScore
?SHLeftKeyNBet:
        jsr     ShowCard
        dec     <CardIndex
        bpl     ?1
        lda     #4
        sta     <CardIndex
?1:
        jmp     jmplmainu
SHRightKey:
        LKeyTone
        bbr7    <SHBetStatus,?ShRightKeyNBet
        jsr     SubBet
        jmp     ShowBetandScore
?ShRightKeyNBet:
        jsr     ShowCard
        inc     <CardIndex
        lda     <CardIndex
        cmp     #5
        bne     ?1
        stz     <CardIndex
?1:
        jmp     jmplmainu

SHEnterKey:
        LKeyTone
;;        LSetTimer       0
        rmb6    <FlashOpt
        bbr7    <SHBetStatus,SHEnterKeyNbet
        rmb7    <SHBetStatus
        smb6    <SHCoverStatus
        LClrLcd
        jsr     ScoreSbcBet
        jsr     ShowScore
        stz     <CardIndex
        lda     #00011111b
        sta     <CoverCard
        jsr     ShowAllCard
;;        LSetTimer       45
        smb6    <FlashOpt
        jmp     jmplmainu
sShowHandStart1:
        lda     #0
        cmp     <SHScoreH
        bne     ?2
        cmp     <SHScoreL
        bne     ?1
        LClrLcd
        lda     #24
        sta     <oy
        lda     #8
        sta     <ox
        ldx     #>BankruptTitle
        ldy     #<BankruptTitle
        LDrawText
        lda     #2
        sta     <SHScoreH
        jmp     jmplmainu
?1:     lda     <SHScoreH
        bne     ?2
        lda     <SHScoreL
        cmp     <Bet
        bcs     ?2
        sta     <Bet

?2:
        jmp     ShowHandStart1
SHEnterKeyNbet:
        bbs7    <WinFlag,sShowHandStart1
        jsr     ShowCard
        jsr     ShowAllBlank
        stz     <CardIndex
?0:     jsr     ShowHoldBlank
        lda     <CardIndex
        inc     <CardIndex
        cmp     #4    ;;5 modified by jrd 2001-11-03
        bne     ?0
?1:     jsr     GetCardValue
        jsr     delay250ms
        jsr     ShowAllCard
        jsr     SHJudgeScore
        lda     <scoretime
?3:     dec
        bmi     ?2
        pha
        sed
        lda     <Bet
?4:     sed
        sec
        sbc     #1
        bcc     ?5
        pha

        clc
        lda     <SHScorel
        adc     #1
        sta     <SHScorel
        lda     <SHScoreH
        adc     #0
        sta     <SHScoreH
?6:     cld
        lda     <SHScoreH
        cmp     #99h
        bcc     ?61
        lda     <SHScoreL
        cmp     #96h
        bcc     ?61
        lda     #95h
        sta     <SHScoreL
?61:
        jsr     ShowScore
        pla
        bra     ?4
?5:     cld
        pla
        bra     ?3
?2:
        smb6    <FlashOpt
        jmp     jmplmainu
ShowBetandScore:
        jsr     ShowBet
        jmp     jmplmainu

ShowHandTimer:
        jmp     jmplmainu
                                          ;; Timer 事件处理向量
;;*************************************************
;;       显示牌色
;;**************************************************
ShowCard:                                       ;;
        jsr     ShowCardBlank                   ;;
        inc     <ox                         ;;
        inc     <ox                         ;;
        inc     <oy                         ;;
        inc     <oy                         ;;
        ldx     <CardIndex                      ;;
        lda     <Card1,x                        ;;
        pha                                     ;;
        and     #00110000b                      ;;
        cmp     #00000000b                      ;;
        beq     ?showheart                      ;;
        cmp     #00010000b                      ;;
        beq     ?showdiamond                    ;;
        cmp     #00100000b                      ;;
        beq     ?showspade                      ;;
?showclub:
        loprintimage ShowHandClub
        bra     ?2
?Showheart:
        loprintimage ShowHandHeart
        bra     ?2
?ShowDiamond:
        loprintimage ShowHandDiamond
        bra     ?2
?ShowSpade
        loprintimage ShowHandSpade
?2:     lda     #35+4+12
        sta     <oy
        clc
        lda     <ox
        adc     #7
        sta     <ox
        pla
        and     #00001111b
        cmp     #8
        bcc     ?3
        beq     ?show10
        cmp     #9
        beq     ?showJ
        cmp     #10
        beq     ?Showq
        cmp     #11
        beq     ?showK
?ShowA: loprintimage      FontA
        rts
?ShowJ: loprintimage      FontJ
        rts
?ShowQ: loprintimage      FontQ
        rts
?ShowK: loprintimage      FontK
        rts
?show10:clc
        lda     #2
        adc     <ox
        sta     <ox
        ldx     #0
        LDrawNum
        sec
        lda     <ox
        sbc     #7
        sta     <ox
        ldx     #1
        LDrawNum
        rts
?3:     inc
        inc
        tax
        LDrawNum
        rts
HideCard:
        lda     #31+4  ;;24+4
        sta     <oy
        lda     #8
        sta     <ox
        lda     <CardIndex
?1:     dec
        bmi     ?HideCardRet
        pha
        clc
        lda     <ox
        adc     #30
        sta     <ox
        pla
        bra     ?1
?HideCardRet:
        LoClrImage   blank_pai
        rts
ShowCardBlank:
        lda     #42+4  ;;24
        sta     <oy
        lda     #8    ;;5
        sta     <ox
        lda     <CardIndex
?1:     dec
        bmi     ?BlankCardRet
        pha
        clc
        lda     <ox
        adc     #30  ;;22
        sta     <ox
        pla
        bra     ?1
?BlankCardRet:
        jsr     SShowcardblank
        rts
ShowAllBlank:
        stz     <CardIndex
        lda     <CoverCard
?1:     beq     ?2
        lsr
        bcc     ?3
        pha
        jsr     ShowCardBlank
        pla
?3:     inc     <CardIndex
        bra     ?1
?2:     rts
HideAllCard:
        stz     <CardIndex
        lda     <CoverCard
?1:     beq     ?2
        lsr
        bcc     ?3
        pha
        jsr     HideCard
        pla
?3:     inc     <CardIndex
        bra     ?1
?2:     rts

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -