*******************************************************************************
hLg      F3rdSTEP(1994-12-27)
ΏۃCuĹFPER
ΏۃCu    FVXe^ytF
o[W@@        F1.04
쐬                FN.T
쐬                F1994-12-27
̑̃bZ[W    FȂ
*******************************************************************************

///////////////////////////////////////////////////////////////////////////////
ύXڍׁ@uPDOR|uPDOS
///////////////////////////////////////////////////////////////////////////////
sǑ΍
    Ver1.03̕sǂ̑΍ȉ̂悤ɍs܂B
    
        1.manper.doc̋Lqӂ
            174sڂPER_LInit̃[NČvZ@ċLqĂ܂B
            ȉɐ܂B
            
                () n = (num ~ size ~ 2) + size
                
                () n = (num ~ (size { 2) ~ 2) + size
                
            Asize͊eytFɂĈقȂ܂Bȉ̒ʂłBsize
            SMPCn[h}jAɃf[^TCYƂċLqĂ܂Bȉɔ
            ܂B
            
                ytF                size
               ---------------------------------- 
                fW^foCX            2
                AiOfoCX            5
                |CeBOfoCX      3
                L[{[hfoCX          4
                KhCu3{^pbh   1
                KhCu6{^pbh   2
               ----------------------------------
            
        2.}EX̃ytFIDo͒ľ
            }EX̃ytFIDāAuE0vŏo͂Ă܂B
            u20v(PER_ID_PNT)o͂悤C܂B

̑
        Ver1.03ɂytFf[^o͎dlύX̕⑫
            ȉ̐ڑԎVer1.02ȑOVer1.03ȍ~̃ytFo̓f[^
            ̈Ⴂ܂B
            
                Eڑ
                    {̒[q1=ڑ
                    {̒[q2=fW^foCX

                Eo͌
                   EVer1.02ȑO
                        z 0 = ڑ
                        z 1 = fW^foCX

                   EVer1.03ȍ~
                        z 0 = fW^foCX
                        z 1 = s
                        
                        ߏ
                            {̒[q1ȸ = 0
                            {̒[q2ȸ = 0

            L̂悤ɁAVer1.02ȑOVer1.03ȍ~ł̓ytFo̓f[^
            قȂ܂B
            Ver1.03ȍ~ł́AuߏvƂɃytFo̓f[^Q
            ƂĂB
            (ߏǉo̗͂ŔAٍ̪쐬邽߂łB)

///////////////////////////////////////////////////////////////////////////////
}jAǉ
///////////////////////////////////////////////////////////////////////////////

ύXEǉT
    Oo[W̕ύXEǉ͈ȉ̂Q_ɂĂłBP_ڂ͎ȕύX_
    ܂B̌Ɉȉ̂Q_̏ڍׂȕύXEǉύX}jAƂċL
    ܂B

    Q[쐬iytFjւ̑ΉɂύX
    }jAǉ
        guV[eBO

Q[쐬iytFjւ̑ΉɂύX

    Q[쐬֑Ήł悤ɃytF̎擾̎dlꕔύX܂
    BȕύX_͈ȉ̂ƂłBeQ[Ɏgp@̎Rx邽ߑOo
    [W菭ᐅĂ܂B֐̐͑Oo[WƓłB
    ֐̂͑Oo[Wƌ悤ύXĂ܂B
    
    **dv**************************************************************
    *   Ver1.02ȑÕCu̓Q[쐬ɍ킷ƂłȂ̂ŁA*
    *   K{o[W(Ver1.03)̃CuֈڍsĂB          *
    ************************************************************************
    
    (1)}`^bv̏o͒ǉ
        ytFf[^̐ڑ[q̏񂪕KvȂ߁B
    
    (2)ytFTCY̏o͒ǉ
        ytF̎ʔɕKvȂ߁B
    
    (3)PUSH(O񖢉݉)f[^̏o͂̍폜B
        œKł悤ɃCu폜B
    
    (4)ytFf[^HȂŏo͂悤CB
        1̃Q[ňقȂytFgpł悤ɂ邽߁B
        (  -> 1P = AiOA2P = }EX ̃Q[@j

ύX}jA

    

        (1)Ver1.01(1994-08-22)̃TvSCŮ荞݃Xe[^XWX^
            gpĂ܂BÃWX^̓n[hEFA̐ɂg
            płȂȂ܂B
        
        (2)Qt[ȏ̃Q[ł̒ӓ_
            Qt[ȏiPER_LInit֐Őݒ肷V-BLANKXLbvłPȏ
            ݒ肷jꍇA{Cuł͍Ō̃t[̂݃ytF̎
            s܂B̎dlł͓r̃t[̃ytFf[^擾
            Ȃ߃GbWiO񖢉݉{^ǰołȂꍇ
            ܂BVrAȃGbW̃`FbNKvȏꍇ́AV-BLANKXLbv
            0ɂāAC^vgPER_LGetPer֐sĂB

        (3)}jAŁuPER_LGetPer֐V-BLANK OUTɎsĂ
            vƋLqĂ܂AVDP2CuSCL_VblankEnd֐gp
            ꍇ́APER_LGetPer֐SCL_VblankEnd֐ɎsĂ
            BSCL_VblankEnd֐̎s^C~OxƃXvCg̃t[
            `FW̃^C~OɂȂĂ܂ʂ̓xȂĂ
            ܂B


    R[OV[PX

        TvvOBiTvvO͊֐̎g
        mĂ̂ړIłB̂߃Q[쐬ɍĂȂ
        ܂Bj
    

    f[^dl
        
        ytFf[^o
            ytFf[^o͍\ȉ̂悤ɕύX܂B
        
               +-̪ID
               |    +-̪ٻ
               |    |    +-ް 1                     1 ޲
               |    |    |    +-ް 2                 <-->
               |    |    |    |                       |    |
             +----+----+----+----+--  -+----+----+----+----+----+----+--
             | ID | SZ | D1 | D2 |EE | ID | SZ | D1 | D2 | ID | SZ | D
             +----+----+----+----+--  -+----+----+----+----+----+----+--
             <------------------>
                1 ̪ް
             <--------------------------------------------> <--------------
                                {̒[q1                     {̒[q2
                                ȸ                      ȸ
                                ̪ް                     ̪ް
 
            L̖{̒[q̺ȸ͈ȉ̃}`^bvɊ܂܂܂B
            
                E̪ID
                    PER_ID_NCON_UNKNOWN /* ڑ or SMPC UNKNOWN    */
                    PER_ID_DGT          /* fW^foCX          */
                    PER_ID_ANL          /* AiOfoCX          */
                    PER_ID_PNT          /* |CeBOfoCX    */
                    PER_ID_KBD          /* L[{[h@@@          */
                    PER_ID_MD           /* KhCu              */

                E̪ٻ
                    PER_SIZE_NCON_15    /* ڑ or 15oCgfoCX*/
                    PER_SIZE_DGT        /* fW^foCX          */
                    PER_SIZE_ANL        /* AiOfoCX          */
                    PER_SIZE_PNT        /* |CeBOfoCX    */
                    PER_SIZE_KBD        /* L[{[h@@@          */
                    PER_SIZE_M3BP       /* KhCu3{^pbh */
                    PER_SIZE_M6BP       /* KhCu6{^pbh */
            
            PerXxxInfo, PerXxxDataް^͍폜܂B
            
            AAPerXxxDatãrbgʒu萔͖̂ύXĎcĂ܂B
              rbgʒu̓oCgPʂŃANZXƂ̂̂łBڍׂ
              sega_per.hB
                
                () PER_DGT_U --> PER_LDGT_U
            
            }EXf[^̃fW^f[^쐬@\͍폜܂B
                Ver1.02ł͈ȉ̂悤ɂă}EX̃fW^f[^쐬Ă
                ܂BQlɂĂB

                    (1)̎擾ňȉ̂ƂsB
                        EYf[^}CiXłƂ
                            DOWNZϐYړΒlZ
                        EYf[^vXłƂ
                            UPZϐYړΒlZ
                        EXf[^}CiXłƂ
                            LEFTZϐXړΒlZ
                        EXf[^}CiXłƂ
                            RIGHTZϐXړΒlZ
                           
                        ꂼZϐ256ȏɂȂƂrbg
                        ɂBԂɂZϐ0NAB
                        

        }`^bv
            
            typedef struct {
                PerMulId    id;     /* ID     */
                PerMulCon   con;    /* ȸ        */
            }PerMulInfo;            /* ߏ   */

            EID
                PER_MID_NCON_ONE        /* ڑ or             */

            Eߺȸ
                PER_MCON_NCON_UNKNOWN   /* ڑ or UNKNOW          */


        ytFf[^o͂ƃ}`^bv
            ȉ̐ڑԎVer1.02ȑOVer1.03ȍ~̃ytFo̓f[^
            ̈Ⴂ܂B
            
                Eڑ
                    {̒[q1=ڑ
                    {̒[q2=fW^foCX

                Eo͌
                   EVer1.02ȑO
                        z 0 = ڑ
                        z 1 = fW^foCX

                   EVer1.03ȍ~
                        z 0 = fW^foCX
                        z 1 = s
                        
                        ߏ
                            {̒[q1ȸ = 0
                            {̒[q2ȸ = 0

            L̂悤ɁAVer1.02ȑOVer1.03ȍ~ł̓ytFo̓f[^
            قȂ܂B
            Ver1.03ȍ~ł́AuߏvƂɃytFo̓f[^Q
            ƂĂB
            (ߏǉo̗͂ŔAٍ̪쐬邽߂łB)

    ֐dl
    
        PER_Init֐ -> PER_LInit֐

                Uint32 PER_LInit(PerKind kind, PerNum num, PerSize, 
                                     Uint8 work[n], Uint8 v_blank);
                kindF  CgobN
                    numF   KvytF
                    sizeF  ytFTCY
                    workF  [N̈
                            iKO[oϐŐ錾Ăj
                    v_blankF   V-BLANKXLbv
                    
                    [N̈̌vZ@
                    
                        n = (num ~ (size { 2) ~ 2) + size

                        size͊eytFɂĈقȂ܂Bȉ̒ʂł
                        BsizeSMPCn[h}jAɃf[^TCYƂċLq
                        Ă܂Bȉɔ܂B
            
                            ytF                size
                           ---------------------------------- 
                            fW^foCX            2
                            AiOfoCX            5
                            |CeBOfoCX      3
                            L[{[hfoCX          4
                            KhCu3{^pbh   1
                            KhCu6{^pbh   2
                           ----------------------------------
            
        PER_GetPer֐ -> PER_LGetPer֐
        
                Uint32 PER_LGetPer(PerGetPer **output_dt,
                                       PerMulInfo **mul_info);
                Ȃ
            o    output_dtFytFo̓AhX(NULL=擾łȂj
                    mul_infoF}`^bvo̓AhX
                                PerMulInfo mul_info[2]̃AhX擾܂B
                                mul_info[0]͖{̒[qP̏Amul_info[1]͖{
                                ̒[qQ̏łB

            ڍא
                    EytFf[^̓}`^bvRlN^͈̔͂̂ݒl
                        ۏ؂܂BăytFf[^QƂƂ͕K
                        }`^bvRlN^Qƈʒu߂ĂB
                    EɁAڑ̎AytFf[^̏sĂ
                        ܂̂ŁAKytFID,ytFTCYQ
                        ƂĂytFf[^QƂĂB


    guV[eBO
        
        (1)ytFf[^擾łȂB
            EV-BLANK OUT玟V-BLANK IN܂ł̊ԂɁDD
                ESH̊荞݃}XN15ɂȂĂȂH
                    荞݃}XN15ɂȂĂSMPC荞݁ȋ̊
                    ݂j󂯕t邱Ƃł܂B0SMPC̊荞ݗD
                    xႢ荞݃}XNݒ肵ĂB

                ESCŮ荞݃}XNSMPC荞݃rbgʒu1i֎~jɂȂ
                  ĂȂH
                    荞݋֎~ɂȂĂSMPC荞݂󂯕t邱Ƃ
                    ܂B0ijɂĂB
                    
                ESMPC荞ݗDx荂荞݂ԎsĂB
                    D揇ʂ̍荞ݏ͗Dx̒Ⴂ荞݂󂯕t
                    邱Ƃł܂BDx̍荞ݏ𒷂s
                    Ȃ邩AVXeCů荞ݗD揇ʕύX[`
                    gpSMPC荞݂󂯕t悤ɂĂB
                    
                    荞ݗDx̓n[hŗLlƃVXeCu̐ݒl
                    ̂Q܂Bڂ̓VXeCuSCUn[hE
                    FA}jAB

̑
    RpCIvV̕ύX
        CũRpCIvV/SP/NOSP֕ύX܂BŔA/SP
        ŃRpCƊ֐CCWJĂ܂̂ŃfobOɍ
        ꂪ邽߂łB

    VXe^ytFCugpTvvOւ̑Ώ
        VXe^ytFCugpĂeCu
        TvvÔ߂ɍ̃VXe^ytFCuɂ́A
        ȑÕo[W̊֐A萔܂߂Ă܂BAÅ֐A萔
        A4thSTEPł͍폜܂B
        ȑÕo[W̊֐A萔͎gpȂłB
        PPPPPPPPPPPPPPPPPPPPPPPPPPP

********************************** end of file ********************************
