[PR]΅±Ό½ΕΛή‚Ε˜VlΞ°Ρ’T‚΅:‘S‘1800ˆΘγ‚ΜŽ{έ‚©‚η”δŠrŒŸ“’


NYO$B%C%H$d$m$&$<(J

$B!AFHEDCO9v:X$,B#$k(JPlayStation$B8&5f=x@b!A(J

                     NNNNNN                           
                     NNNNNNNNNNNN                     
                     NNNNNNNNNNNNNNNN                 
                     NNNNNNNNNNNNNNNNNNN              
                     NNNNNNNNN   NNNNNNNNN            
                     NNNNNNNNN    NNNNNNNNN           
                     NNNNNNNNN    NNNNNNNNN           
                     NNNNNNNNN    NNNNNNNNNN          
                     NNNNNNNNN    NNNNNNNNNN          
                     NNNNNNNNN    NNNNNNNNNN          
                     NNNNNNNNN    NNNNNNNNNN          
                     NNNNNNNNN    NNNNNNNNN           
                     NNNNNNNNN    NNNNNNNN            
                   OONNNNNNNNN    NNNNNNN             
              YYYOOOONNNNNNNNN                        
          YYYYYYYYYYYNNNNNNNNN     OOOOOOOOOOOO       
      YYYYYYYYYYYYYYYNNNNNNNNNYYOOOOOOOOOOOOOOOOOOO   
 OOOOOOYYYYYYYYY     NNNNNNNNNYYYYYYYOOO     OOOOOOOOO
OOOOOOOOOOO        YYNNNNNNNNNYYYYY        OOOOOOOOOOO
OOOOOOOOO     OOOYYYYNNNNNNNNN        YYYYYYYYYOOOOOO 
   OOOOOOOOOOOOOOOOOONNNNNNNNN   YYYYYYYYYYYYYYY      
       OOOOOOOOOOOO  NNNNNNNNNOYYYYYYYYYYYY           
                     NNNNNNNNNOOOOOOYYY               
                          NNNNOOOO                    

$B$O$8$a$K(J

$BK\%Z!<%8$OL$Mh$N(JPlayStation$B%(%_%e%l!<%?3+H/pJsDs6!$rL\E*$H$9$k!#(J $B$?$@$7!"$3$3$G%3!<%G%#%s%0$N9V5A$r$9$k$D$b$j$O$J$$!#(J $B$J$<$J$i%3!<%G%#%s%0$N4QE@$+$i%(%_%e%l!<%?FCM-$H8F$Y$k$b$N$O2?$b$J$$$+$i$@!#(J $BF0E*%3%s%Q%$%k$ODA$7$$$+$b$7$l$J$$$,!"$3$l$O%(%_%e%l!<%?$NK\$7$?J}$,$$$$$s$8$c$J$$$+!#(J


$B2r@O4D6-(J

PlayStation$BK\BN(J

SCPH-7000 (SONY)

$B@)8f%^%7%s(J

$B$$$o$f$k<+:n(JDOS/V

$BDL?.%G%P%$%9(J

PS X-TERMINATOR (Future Console Design)

$BDL?.%G%P%$%9%U%!!<%`%&%'%"(J

caetla 0.34 (K-Communications)

$BDL?.%W%m%0%i%`(J

caetools (K-Communications)
directio (K-Communications)

$B2r@O%W%m%0%i%`:n@.(J

GNU Binary Utilities 2.8.1 mipsel-generic-elf/ecoff ($B$3$Z$k(J)
GNU C/C++ Compiler 2.7.2.3 mipsel-generic-elf/ecoff ($B$3$Z$k(J)
Borland C++Compiler 5.5 (Borland)


$B;29MJ88%(J

$B!V%M%C%H$d$m$&$

http://www.scei.co.jp/Net/guide/user/

PADUA PLAYSTATION RESOURCE

http://psx.rules.org/psxrul2.shtml

$B$?$@$7!"$3$l$i$K$OB?$/$N8m5-$,$"$k$N$G1-F]$_$K$7$J$$$3$H!#(J $B@55,3+H/%^%K%e%"%k$+$iH4?h$7$?$H;W$o$l$kItJ,$K$9$i8m5-$,$"$k(J ($B@55,%^%K%e%"%k$K$b8m5-$O$"$k(J)$B!#(J $B3+H/

$BEl

http://www.semicon.toshiba.co.jp/product/micro/index.html


$B%"!<%-%F%/%A%c(J

$B%V%m%C%/?^(J

$B%a%b%j%^%C%W(J

$BI=(J. $B%a%b%j%^%C%W(J
$B%"%I%l%9(J $BFbMF(J
0x00000000$B!A(J0x001FFFFF $B%a%$%s%a%b%j(J($BL?Na%-%c%C%7%eM-8z(J)
0x00200000$B!A(J0x003FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x00400000$B!A(J0x005FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x00600000$B!A(J0x007FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x00800000$B!A(J
0x1F000000$B!A(J PIO
0x1F0?????$B!A(J
0x1F800000$B!A(J0x1F8003FF $B%9%/%i%C%A%Q%C%I(J
0x1F000400$B!A(J
0x1F801000$B!A(J I/O$B%]!<%H(J($B$$$o$f$k%a%b%j%^%C%W%I(JI/O)
0x1F80????$B!A(J
0x1FC00000$B!A(J0x1FC7FFFF OS ROM
0x1F800000$B!A(J
0x80000000$B!A(J0x801FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x80200000$B!A(J0x803FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x80400000$B!A(J0x805FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x80600000$B!A(J0x807FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eM-8z(J)
0x80800000$B!A(J
0x9FC00000$B!A(J0x9FC7FFFF OS ROM $B%_%i!<(J
0x9FC80000$B!A(J
0xA0000000$B!A(J0xA01FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J)
0xA0200000$B!A(J0xA03FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J)
0xA0400000$B!A(J0xA05FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J)
0xA0600000$B!A(J0xA07FFFFF $B%a%$%s%a%b%j(J $B%_%i!<(J($BL?Na%-%c%C%7%eL58z(J)
0xA0800000$B!A(J
0xBFC00000$B!A(J0xBFC7FFFF OS ROM $B%_%i!<(J
0xBFC80000$B!A(J
0xFFFE0130$B!A(J0xFFFE0133 SwapCache?
0xFFFE0134$B!A(J

$B%l%8%9%?%^%C%W(J

$BI=(J. $B%l%8%9%?%^%C%W(J
$B%"%I%l%9(J $B%l%8%9%?L>(J($B2>(J) $BFbMF(J
0x1F801000 ? $B3HD%%a%b%jNN0h;XDj(J?
0x1F801004 ? I/O$B%]!<%H=*C<;XDj(J?
0x1F801008 ? ?
0x1F80100C ? ?
0x1F801010 ? ?
0x1F801014 ? SPU DMA$B$N%&%'%$%H(J?
0x1F801018 ? OTC DMA$B$N%&%'%$%H(J?
0x1F80101C ? ?
0x1F801020 ? CD DMA$B$N%&%'%$%H(J?



0x1F801040 COMA_DATA COMA$B%G!<%?(J
0x1F801044 COMA_STAT COMA$B%9%F!<%?%9(J
0x1F801048 COMA_MODE COMA$B%b!<%I(J
0x1F80104A COMA_CTRL COMA$B%3%s%H%m!<%k(J
0x1F80104E COMA_BAUD COMA$B%\!<(J
0x1F801050 SIO_DATA SIO$B%G!<%?(J
0x1F801054 SIO_STAT SIO$B%9%F!<%?%9(J
0x1F801058 SIO_MODE SIO$B%b!<%I(J
0x1F80105A SIO_CTRL SIO$B%3%s%H%m!<%k(J
0x1F80105E SIO_BAUD SIO$B%\!<(J
0x1F801060 RAM_SIZE $B



0x1F801070 I_STAT $B3d$j9~$_%9%F!<%?%9(J
0x1F801074 I_MASK $B3d$j9~$_%^%9%/(J



0x1F801080 D0_MADR DMAC$B%A%c%M%k(J0(MDECin)$B%a%b%j%"%I%l%9(J
0x1F801084 D0_BCR DMAC$B%A%c%M%k(J0(MDECin)$B%V%m%C%/%+%&%s%H(J
0x1F801088 D0_CHCR DMAC$B%A%c%M%k(J0(MDECin)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F801090 D1_MADR DMAC$B%A%c%M%k(J1(MDECout)$B%a%b%j%"%I%l%9(J
0x1F801094 D1_BCR DMAC$B%A%c%M%k(J1(MDECout)$B%V%m%C%/%+%&%s%H(J
0x1F801098 D1_CHCR DMAC$B%A%c%M%k(J1(MDECout)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010A0 D2_MADR DMAC$B%A%c%M%k(J2(GPU)$B%a%b%j%"%I%l%9(J
0x1F8010A4 D2_BCR DMAC$B%A%c%M%k(J2(GPU)$B%V%m%C%/%+%&%s%H(J
0x1F8010A8 D2_CHCR DMAC$B%A%c%M%k(J2(GPU)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010B0 D3_MADR DMAC$B%A%c%M%k(J3(CD)$B%a%b%j%"%I%l%9(J
0x1F8010B4 D3_BCR DMAC$B%A%c%M%k(J3(CD)$B%V%m%C%/%+%&%s%H(J
0x1F8010B8 D3_CHCR DMAC$B%A%c%M%k(J3(CD)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010C0 D4_MADR DMAC$B%A%c%M%k(J4(SPU)$B%a%b%j%"%I%l%9(J
0x1F8010C4 D4_BCR DMAC$B%A%c%M%k(J4(SPU)$B%V%m%C%/%+%&%s%H(J
0x1F8010C8 D4_CHCR DMAC$B%A%c%M%k(J4(SPU)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010D0 D5_MADR DMAC$B%A%c%M%k(J5(PIO)$B%a%b%j%"%I%l%9(J
0x1F8010D4 D5_BCR DMAC$B%A%c%M%k(J5(PIO)$B%V%m%C%/%+%&%s%H(J
0x1F8010D8 D5_CHCR DMAC$B%A%c%M%k(J5(PIO)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010E0 D6_MADR DMAC$B%A%c%M%k(J6(OTC)$B%a%b%j%"%I%l%9(J
0x1F8010E4 D6_BCR DMAC$B%A%c%M%k(J6(OTC)$B%V%m%C%/%+%&%s%H(J
0x1F8010E8 D6_CHCR DMAC$B%A%c%M%k(J6(OTC)$B%A%c%M%k%3%s%H%m!<%k(J



0x1F8010F0 D_PCR DMAC$BM%@hEY%3%s%H%m!<%k(J
0x1F8010F4 D_ICR DMAC$B3d$j9~$_%3%s%H%m!<%k(J



0x1F801100 T0_COUNT $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%+%&%s%H(J
0x1F801104 T0_MODE $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%b!<%I(J
0x1F801108 T0_COMP $B%?%$%^(J0($B%7%9%F%`!?%T%/%;%k(J)$B%3%s%Z%"(J



0x1F801110 T1_COUNT $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%+%&%s%H(J
0x1F801114 T1_MODE $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%b!<%I(J
0x1F801118 T1_COMP $B%?%$%^(J1($B%7%9%F%`!??eJ?F14|(J)$B%3%s%Z%"(J



0x1F801120 T2_COUNT $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%+%&%s%H(J
0x1F801124 T2_MODE $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%b!<%I(J
0x1F801128 T2_COMP $B%?%$%^(J2($B%7%9%F%`!?(J8$BJ,<~(J)$B%3%s%Z%"(J



0x1F801800 CD_REG0 CD$B%l%8%9%?(J0
0x1F801801 CD_REG1 CD$B%l%8%9%?(J1
0x1F801802 CD_REG2 CD$B%l%8%9%?(J2
0x1F801803 CD_REG3 CD$B%l%8%9%?(J3



0x1F801810 GPU_DATA GPU$B%G!<%?!?%3%^%s%I(J
0x1F801814 GPU_CTRL GPU$B%9%F!<%?%9!?%3%s%H%m!<%k(J



0x1F801820 MDEC_DATA MDEC$B%G!<%?!?%3%^%s%I(J
0x1F801824 MDEC_CTRL MDEC$B%9%F!<%?%9!?%3%s%H%m!<%k(J



0x1F801C00 SPU_REG00 SPU$B%l%8%9%?(J0
0x1F801C02 SPU_REG01 SPU$B%l%8%9%?(J1
$BCfN,(J $BCfN,(J $BCfN,(J
0x1F801DFC SPU_REGFE SPU$B%l%8%9%?(J254
0x1F801DFE SPU_REGFF SPU$B%l%8%9%?(J255



0x1F802041 ? $B%G%#%C%W%9%$%C%A(J?




CPU($BCf1{=hM}AuCV(J)

PlayStation$B$N(JCPU$B$O(JMIPS$B$N(JR3000$B$r%Y!<%9$H$7$?%+%9%?%`(JCPU$B$G$"$k!#(J $BF0:n<~GH?t$O(J33868800Hz$B$H8@$o$l!"%(%s%G%#%"%s$O%j%H%k$G$"$k!#(J $B

$B%3!<%II=(J

COP1,COP3,TLB$B7O$OB8:_$7$J$$!#(J $B%5!<%S%9%3!<%kFb$N(Jatof$B$G(JCOP1$BL?Na$,;H$o$l$F$$$k$,(Jatof$B<+BN$,8F$P$l$?;n$7$,$J$$!#(J $B$*$=$i$/;n:n5!$G$O%G%P%0=hM}$N$?$a$KB8:_$9$k$,!"7k6I%*%_%C%H$5$l$?$N$@$m$&!#(J

$BI=(J. $B%U%#!<%k%I$NL>>N(J
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
op rs rt rd sa funct

$BI=(J. op
op 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00 SPECIAL BCOND J JAL BEQ BNE BLEZ BGTZ
0x08 ADDI ADDIU SLTI SLTIU ANDI ORI XORI LUI
0x10 COP0
COP2




0x18







0x20 LB LH LWL LW LBU LHU LWR
0x28 SB SH SWL SW

SWR
0x30

LWC2




0x38

SWC2





$BI=(J. funct(op=SPECIAL)
funct 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00 SLL
SRL SRA SLLV
SRLV SRAV
0x08 JR JALR

SYSCALL BREAK

0x10 MFHI MTHI MFLO MTLO



0x18 MULT MULTU DIV DIVU



0x20 ADD ADDU SUB SUBU AND OR XOR NOR
0x28

SLT SLTU



0x30







0x38








$BI=(J. rs(op=BCOND)
rs 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00 BLTZ BGEZ





0x08







0x10 BLTZAL BGEZAL





0x18








$BI=(J. rs(op=COP0)
rs 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00 MFC0


MTC0


0x08







0x10 CP0
0x18

$BI=(J. funct(op=COP0,rs=CP0)
funct 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00







0x08







0x10 RFE






0x18







0x20







0x28







0x30







0x38








$BI=(J. rs(op=COP2)
rs 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00 MFC2
CFC2
MTC2
CTC2
0x08







0x10 CP2
0x18

$BI=(J. funct(op=COP2,rs=CP2)
funct 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x00
RTPS



NCLIP
0x08



OP


0x10 DPCS INTPL MVMVA NCDS CDP
NCDT
0x18


NCCS CC
NCS
0x20 NCT






0x28 SQR DCPL DPCT

AVSZ3 AVSZ4
0x30 RTPT






0x38




GPF GPL NCCT
rs+b20$B$r%3!<%I$H0lBP0l$KBP1~$5$;$k$N$O!"$?$@$N47=,$G$"$k!#(J

I($BL?Na(J)$B%-%c%C%7%e(J

$B%M%C%H$d$m$&$<$N5-=R$K$O=EMWIt$G$"$k$[$I8m$j$,$"$k$N$G!"Cm0U$,I,MW$G$"$k!#(J $B$^$:%a%b%j6u4V$H%-%c%C%7%e(J($B%P!<%9%HE>Aw(J)$B$NM-8z!?L58z$N4X78$r<($7$?I=$K$*$$$F(J $B%a%b%j6u4V$r

I$B%-%c%C%7%e$,M-8z$JO@M}%a%b%j6u4V>e$NL?Na%3!<%I$ODL>o$NLs#5G\$NB.EY$G(JCPU$B$KFI$_9~$^$l$^$9!#(J $B$^$?!"0lC6FI$_9~$^$l$?L?Na%3!<%I$O(JCPU$BFb$N(JI$B%-%c%C%7%e%a%b%j$KJ]B8$5$l$^$9$N$G!"(J $B:F

$B$H$$$&J8>O$b$*$+$7$$!#(J $B8eH>$NJ8>O$,$"$k$+$i!"A0H>$O%-%c%C%7%e%_%9$7$?>uBV$G$Ne$K$O$J$i$J$$!#(J

$B%9%/%i%C%A%Q%C%I(J D$B%-%c%C%7%e(J

$B%"%I%l%9(J0x1F800000$B$K%^%C%T%s%0$5$l$?!"%9%H!<%k$NH/@8$7$J$$(JRAM$B$r(J PlayStation$B$N!VJ}8@!W$H$7$F(JD$B%-%c%C%7%e$H8F$s$G$$$k$,!"(J $B$3$l$O0lHLE*$J0UL#$N(JD$B%-%c%C%7%e$G$O$J$$!#(J $B0lHLE*$J0UL#$N(JD$B%-%c%C%7%e$O(JPlayStation$B$K$OB8:_$7$J$$!#(J


GTE(Geometry Transformation Engine $B%0%i%U%#%C%/%G!<%?@8@.%W%m%;%C%5(J)

$B5U?t%F!<%V%k(J

RTPS,RTPT$BL?Na$K$*$$$F!"Ej1FJQ4978?t(J

(int) (h * 65536 / Sz + 0.5)

$B$,5a$a$i$l$k$,!"
(h * iSz + (1 << (N - 1))) >> N

$B$,9T$o$l$k!#(JiSz$B$O(J0x10000$B!A(J0x1FFFF$B$NHO0O$G$"$j!">.?tIt(J16$B%S%C%H$NIbF0>.?t$KAjEv$9$k!#(J iSz$B$OI,$:$7$b(J

(65536 << N) / Sz

$B$K$O$J$C$F$$$J$$$N$G!"%V%k!<%H%U%)!<%9%"%?%C%/$K$h$kC5:w$,I,MW$K$J$k!#(J

Sz:32768$B!A(J65535(N=16)$B$K$D$$$F7k2L$r<($9!#(J Sz:0$B!A(J32767$B$K$D$$$F$O!"(JN$B$r8:$i$9$@$1$J$N$G3d0&$9$k!#(J


$B%(%_%e%l!<%HK!(J

$BF0E*%3%s%Q%$%kK!$N0lNc(J

$B%3!<%II=$+$iJ,$+$k$h$&$K(JR3000$B$OC1=c$JL?Na$@$1$G9=@.$5$l$F$*$j!"4{$K%^%$%/%m%3!<%I$G$"$k$H$b8@$($k!#(J $B=>$C$F!"0l%3!<%I$KBP$7$F0l8D$N%3%s%Q%$%k:Q$_%G!<%?$rM=$aMQ0U$7!"
/*
 *
 */
uchar __SRAV[] = {
    0x8B, 0x0D, '\\', '\\', '\\', '\\', /* 00 mov ecx,[GPR[rs]] 02 &GPR[rs] */
    0xA1, '\\', '\\', '\\', '\\',       /* 06 mov eax,[GPR[rt]] 07 &GPR[rt] */
    0xD3, 0xF8,                         /* 0B sar eax,cl */
    0xA3, '\\', '\\', '\\', '\\'        /* 0D mov [GPR[rd]],eax 0E &GPR[rd] */
};


/*
 *
 */
uchar __SRLV[] = {
    0x8B, 0x0D, '\\', '\\', '\\', '\\', /* 00 mov ecx,[GPR[rs]] 02 &GPR[rs] */
    0xA1, '\\', '\\', '\\', '\\',       /* 06 mov eax,[GPR[rt]] 07 &GPR[rt] */
    0xD3, 0xE8,                         /* 0B shr eax,cl */
    0xA3, '\\', '\\', '\\', '\\'        /* 0D mov [GPR[rd]],eax 0E &GPR[rd] */
};

$B$NMM$J%G!<%?$rM=$aMQ0U$7!"
/*
 *
 */
#define _rs_    ((opcode >> 21) & 31)
#define _rt_    ((opcode >> 16) & 31)
#define _rd_    ((opcode >> 11) & 31)


/*
 *
 */
#define CPU_SET_SRAV()                                    \
    {                                                     \
        *(ulong *) (&__SRAV[0x02]) = (ulong) & GPR[_rs_]; \
        *(ulong *) (&__SRAV[0x07]) = (ulong) & GPR[_rt_]; \
        *(ulong *) (&__SRAV[0x0E]) = (ulong) & GPR[_rd_]; \
        CPU_OPCODE                 = __SRAV;              \
        CPU_OPSIZE                 = sizeof(__SRAV);      \
    }


/*
 *
 */
#define CPU_SET_SRLV()                                    \
    {                                                     \
        *(ulong *) (&__SRLV[0x02]) = (ulong) & GPR[_rs_]; \
        *(ulong *) (&__SRLV[0x07]) = (ulong) & GPR[_rt_]; \
        *(ulong *) (&__SRLV[0x0E]) = (ulong) & GPR[_rd_]; \
        CPU_OPCODE                 = __SRLV;              \
        CPU_OPSIZE                 = sizeof(__SRLV);      \
    }

$B$NMM$KJQ?tItJ,$r=q$-49$($k!#8e$O$3$l$rO"7k%3%T!<$7$F4X?t$r:n@.$7!"=PMh>e$,$C$?4X?t$r

$BCm0U;v9`(J

$B9+$G8m2r$,$"$k$h$&$J$N$G!"Cm0U$r4-5/$9$k$H!"(J $Be$,$C$?4X?t$r4IM}!&:FMxMQ$9$k$3$H$3$=$,!"F0E*%3%s%Q%$%k$N4N$G$"$k!#(J $BF0E*%3%s%Q%$%k$H$O2DJQD9%G!<%?$rBP>]$H$7$?%-%c%C%7%e5!9=$r9=C[$9$k$3$H$KEy$7$$!#(J

$B%3%s%Q%$%k:Q%G!<%?$N:n@.K!$N0lNc(J

$B%"%;%s%V%i$GD>@\5-=R$9$k0J30$K!"0J2<$NMM$K(JC$B$G5-=R$7!"(J $B%U%!%$%k=PNO!"5U%"%;%s%V%k$9$k$N$b0l$D$N
/*
 *
 */
#define _rs_    1               /* $BJQ?tItJ,$J$N$GE,Ev(J */
#define _rt_    2               /* $BJQ?tItJ,$J$N$GE,Ev(J */
#define _rd_    3               /* $BJQ?tItJ,$J$N$GE,Ev(J */


/*
 *
 */
long GPR[32];


/*
 *
 */
void __SRAV(void)
{
    GPR[_rd_] = GPR[_rt_] >> GPR[_rs_];
}


/*
 *
 */
void ____SRAV(void)
{
}


/*
 *
 */
void __SRLV(void)
{
    GPR[_rd_] = ((ulong) GPR[_rt_]) >> GPR[_rs_];
}


/*
 *
 */
void ____SRLV(void)
{
}


/*
 *
 */
void SaveToFile(char *lpFileName, void *lpStart, void *lpEnd)
{
    FILE *fp;

    if (NULL == (fp = fopen(lpFileName, "wb"))) {
        return;
    }
    fwrite(lpStart, (ulong) lpEnd - (ulong) lpStart, 1, fp);
    fclose(fp);
}


/*
 *
 */
int main(void)
{
    SaveToFile("SRAV.X86", __SRAV, ____SRAV);
    SaveToFile("SRLV.X86", __SRLV, ____SRLV);
    return(0);
}


INTC($B3d$j9~$_%3%s%H%m!<%i(J)

I_STAT$B%l%8%9%?(J

$B%m!<%I$7$?>l9g(J

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

S
S
P
U
S
S
I
O
S
C
O
M
A
S
T
M
R
2
S
T
M
R
1
S
T
M
R
0
S
D
M
A
C
S
C
D
S
G
P
U
S
V
S
Y
N
C

$B%U%#!<%k%I(J $BFbMF(J
SVSYNC VSYNC$B$N3d$j9~$_%9%F!<%?%9(J
0:VSYNC$B$+$i3d$j9~$_MW5a$,$J$$(J
1:VSYNC$B$+$i3d$j9~$_MW5a$,$"$C$?(J
SGPU$B!A(JSSPU SVSYNC$B$HF1MM(J

$B%9%H%"$7$?>l9g(J

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

C
S
P
U
C
S
I
O
C
C
O
M
A
C
T
M
R
2
C
T
M
R
1
C
T
M
R
0
C
D
M
A
C
C
C
D
C
G
P
U
C
V
S
Y
N
C

$B%U%#!<%k%I(J $BFbMF(J
CVSYNC VSYNC$B$N3d$j9~$_%/%j%"(J
0$B"*(JSVSYNC$B$r(J0$B$K$9$k(J
CGPU$B!A(JCSPU CVSYNC$B$HF1MM(J

I_MASK$B%l%8%9%?(J

$B%m!<%I$7$?>l9g(J

$B%9%H%"$7$?CM$,JV$k(J

$B%9%H%"$7$?>l9g(J

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

M
S
P
U
M
S
I
O
M
C
O
M
A
M
T
M
R
2
M
T
M
R
1
M
T
M
R
0
M
D
M
A
C
M
C
D
M
G
P
U
M
V
S
Y
N
C

$B%U%#!<%k%I(J $BFbMF(J
MVSYNC VSYNC$B$N3d$j9~$_%^%9%/(J
MVSYNC$B$H(JSVSYNC$B$,$H$b$K(J1$B$G$"$k8B$j!"(JINTC$B$O(JCPU$B$K3d$j9~$_$rMW5a$7B3$1$k!#(J
MGPU$B!A(JMSPU MVSYNC$B$HF1MM(J

DMAC(DMA$B%3%s%H%m!<%i(J)

$B=`HwCf(J


$B%?%$%^(J

$B%?%$%^$O@_Dj$K$h$j%7%9%F%`%/%m%C%/$G$O$J$/%T%/%;%kI=<($d?eJ?F14|$K$h$j%+%&%s%H%"%C%W$5$;$k$3$H$,$G$-$k!#(J

$BI=(J. $B%+%&%s%H%?%$%_%s%0(J
$B%?%$%W(J $B2hLLI}(J [A] [B]$B%7%9%F%`%/%m%C%/(J/$B?eJ?F14|(J $B%7%9%F%`%/%m%C%/(J/$B%T%/%;%kI=<((J $B%7%9%F%`%/%m%C%/(J/$B?bD>F14|(J
$BHs%$%s%?!<%l!<%9(J $B%$%s%?!<%l!<%9(J
$B6v?t%U%#!<%k%I(J $B4q?t%U%#!<%k%I(J
NTSC 256 566107.5005 [A]/263 [A]/89683=[B]/341 [B]*263 [B]*263 [B]*262
320 [A]/112038=[B]/426
368 [A]/128081=[B]/487
512 [A]/179366=[B]/682
640 [A]/224339=[B]/853
PAL 256 674399.5367 [A]/314 [A]/106760=[B]/340 [B]*314 [B]*313 [B]*312
320 [A]/133764=[B]/426
368 [A]/152604=[B]/486
512 [A]/213834=[B]/681
640 [A]/267214=[B]/851

$B%a%$%s%a%b%j(J(Main Memory or RAM $B

$B=`HwCf(J


OS ROM(or BIOS $B4pK\A`:n%7%9%F%`5-21AuCV(J)

$B=`HwCf(J


MDEC(Motion Decoder $B%G!<%??-D9%(%s%8%s(J)

$B=`HwCf(J


PIO($B3HD%%Q%i%l%k%]!<%H(J)

$B=`HwCf(J


SIO(or COMB $B3HD%%7%j%"%k%]!<%H(J)

$B=`HwCf(J


GPU($B%0%i%U%#%C%/IA2h=hM}%W%m%;%C%5(J)

GPU_DATA$B%l%8%9%?(J

$B%m!<%I$7$?>l9g(J

$B4pK\E*$K$OFbIt$N%j%6%k%H%l%8%9%?$NCM$,JV$k$,!"(J StoreImage$B%3%^%s%Il9g$O!"$=$N7k2L$,JV$k!#(J

$B%j%6%k%H%l%8%9%?$K$O!"(J GPU$B@)8f7O%3%^%s%I$N7k2L$d(J StoreImage$B%3%^%s%I$N:G=i$N7k2L$,3JG<$5$l$k!#(J $BESCf$N7k2L$O3JG<$5$l$J$$!#(J

$B%9%H%"$7$?>l9g(J

$B%G!<%?$OFbIt$NB?L\E*(JFIFO$B$K3JG<$5$l!"(J $BI,MW$J?t$N%G!<%?$,Cy$^$k$H!"(J GPU$BIA2h7O%3%^%s%I$,

GPU_CTRL$B%l%8%9%?(J

$B%m!<%I$7$?>l9g(J

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
o
d
e
t
m
o
d
e
i
s
e
m
p
t
y
d
a
t
a
r
d
y
i
s
i
d
l
e
d
m
a
r
d
y
r
e
s
e
r
v
e
d
i
s
s
t
o
p
i
s
i
n
t
e
r
i
s
r
g
b
2
4
i
s
p
a
l
v
r
e
s
h
r
e
s
1
h
r
e
s
2
r
e
s
e
r
v
e
d
u
n
k
n
o
w
n
r
e
s
e
r
v
e
d
p
b
c
p
b
w
d
f
e
d
t
d
t
p
a
b
r
t
y
t
x

$B%U%#!<%k%I(J $BFbMF(J
ode $B%S%G%*=PNO$NAv::%U%#!<%k%I$,%U%l!<%`%P%C%U%!>e$N4q?t%i%$%s$+$I$&$+!#(J $B$h$C$F%$%s%?!<%l!<%9$G$O?tI4?eJ?F14|Kh!"Hs%$%s%?!<%l!<%9$G$O(J1$B?eJ?F14|Kh(J($B;XDj%V%i%s%/6h4V$O(J0$B$N$^$^(J)$B$KJQ2=$9$k!#(J
tmode $BE>Aw%b!<%I(J
isempty FIFO($B%Q%1%C%H%P%C%U%!(J)$B$,6u$+$I$&$+(J
datardy $B%G!<%?%l%G%#(J
isidle $B%"%$%I%k>uBV$G$"$k(J
dmardy DMA$B%l%G%#(J
isstop $B%S%G%*=PNO$rDd;_$7$F$$$k(J
isinter $B%$%s%?!<%l!<%9$G=PNO$7$F$$$k(J($B?bD>2rA|EY$rG\L)EY$K$9$k>l9g$OI,?\(J)
isrgb24 rgb24$B%S%C%H%b!<%I$G$"$k(J
ispal PAL$B%b!<%I$G$"$k(J
vres $B?bD>2rA|EY(J
hres1 $B?eJ?2rA|EY(J1
hres2 $B?eJ?2rA|EY(J2($B?eJ?2rA|EY(J1$B$OL58z$K$J$k(J)
unknown $BITL@(J($B%*%s!?%*%UA`:n$O2DG=(J)
pbc $BM%@hEY%S%C%H%3%s%Z%"$r9T$&(J
pbw $BM%@hEY%S%C%H$r=q$-9~$`(J
dfe $B%$%s%?!<%l!<%9$G$"$C$F$b!"(J $BHs%$%s%?!<%l!<%9$HF1MM!"(J $BAv::%U%#!<%k%I$K4X78$J$/IA2h$9$k(J
dtd $B%G%#%6=hM}$r9T$&(J
tp $B%F%/%9%A%c$N%S%C%H%b!<%I(J
abr $BH>F)L@N((J
ty $B%F%/%9%A%c%Z!<%8$N(JY$B:BI8(J
tx $B%F%/%9%A%c%Z!<%8$N(JX$B:BI8(J

$B%9%H%"$7$?>l9g(J

GPU$B@)8f7O%3%^%s%I$,


SPU($B%5%&%s%I=hM}%W%m%;%C%5(J)

$B%V%m%C%/?^(J

$B%\%$%9(J

$BA4(J24$B%A%c%M%k$NFbB"2;8;$N$3$H!#3F%A%c%M%k$OFHN)$K(J $B!VGH7A%G!<%?(J(ADPCM$B$^$?$O6&DL%N%$%:(J)$B!_%(%s%Y%m!<%W!_%\%$%92;NL(J($B:81&FHN)(J)$B!W(J $B$N;0

$B%(%s%Y%m!<%W(J

$BGH7A%G!<%?$K$+$1$k%P%$%"%9$N$3$H!#(J

$BI=(J. ADSR$B%l!<%H(J
$B%l!<%H(J[*] $B
$BJ,Jl(J $BJ,;R(J($BA}2C(J) $BJ,;R(J($B8:>/(J)
0$B!A(J47 1 (7 - (RATE & 3)) << (11 - (RATE >> 2)) (-8 + (RATE & 3)) << (11 - (RATE >> 2))
48$B!A(J 1 << ((RATE >> 2) - 11) 7 - (RATE & 3) -8 + (RATE & 3)
[*]$B%G%#%1%$%l!<%H!"%j%j!<%9%l!<%H$O(J1/4$B$G;XDj$5$l$k$N$G(J4$BG\$7$F9M$($k(J

$BI=(J. ADSR$B%b!<%I(J
$B%b!<%I(J $BFbMF(J
$B@~7AA}2C(J $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$KJ,;R(J($BA}2C(J)$B$r2C;;(J
$B@~7A8:>/(J $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$KJ,;R(J($B8:>/(J)$B$r2C;;(J
$B;X?tA}2C(J $B4pK\E*$K$O@~7AA}2C$HF1$8$@$,%(%s%Y%m!<%W%l%Y%k$,(J0x6000$B0J>e$K$J$k$H%l!<%H$,(J8$BA}2C(J
$B;X?t8:>/(J $BJ,Jl%5%s%W%j%s%0;~4VKh$K%(%s%Y%m!<%W%l%Y%k$K(J (($BJ,;R(J($B8:>/(J) * $B%l%Y%k(J) >> 15)$B$r2C;;(J

$BI=(J. ADSR$B%9%F!<%?%9(J
$B%9%F!<%?%9(J $B3+;O>r7o(J $B=*N;>r7o(J $BK0OB2<8B(J $BK0OB>e8B(J
$B=i4|2=(J $B%-!<%*%s$9$k(J $B%"%?%C%/%l!<%H$K0MB8$7$?=i4|2=;~4V(J[*]$B$,7P2a$9$k(J 0 0
$B%"%?%C%/(J $B=i4|2=$,=*N;$9$k(J $B%(%s%Y%m!<%W%l%Y%k$,(J32767$B0J>e$K$J$k(J
32767
$B%G%#%1%$(J $B%"%?%C%/$,=*N;$9$k(J $B%(%s%Y%m!<%W%l%Y%k$,%5%9%F%$%s%l%Y%kL$K~$K$J$k(J 0
$B%5%9%F%$%s(J $B%G%#%1%$$,=*N;$9$k(J $B%-!<%*%U$9$k(J 0 32767
$B%j%j!<%9(J $B%-!<%*%U$9$k(J $B%(%s%Y%m!<%W%l%Y%k$,(J0$B0J2<$K$J$k(J -1
$BDd;_(J $B!&%j%j!<%9$,=*N;$9$k(J
$B!&(JADPCM$B%G%3!<%@$,6/@)Dd;_$9$k(J
$B%-!<%*%s$9$k(J 0 0
[*]$B%"%?%C%/%l!<%H(J0$B!A(J47$B$G$O(J5$B%5%s%W%j%s%0;~4V$G!"(J $B$=$l0J>e$O=y!9$KC;$/$J$k!#(J $B$3$l$O(JADPCM$B%G%3!<%I$N%U%#%k%?=hM}$K5/0x$9$k!"(J $B;D6A$,>C$($k$?$a$N;~4V$G$"$k!#(J $B%l!<%H$,Bg$-$/$J$k$H!"%"%?%C%/$NJ}$G(J0$B$K$J$k;~4V$,A}$($k$+$i!"(J $B$=$NJ,C;$/$FNI$$$N$G$"$k!#(J

ADPCM$BGH7A(J

ADPCM$B%G%3!<%@$,05=L%G!<%?$r%G%3!<%I$7$FF@$?%5%s%W%j%s%0GH7A$N$3$H!#(J $B=EMW$J$N$O(JADPCM$B%G%3!<%@$,(J($B%j%P!<%V%W%m%;%9$b(J)$B>o;~2TF0$7$F$$$k$3$H$@$m$&!#(J $BDd;_$7$?$h$&$K8+$($F!"$=$l$O%(%s%Y%m!<%W$r6/@)Dd;_$5$;$?7k2L$K$9$.$J$$!#(J $B$D$^$j!">o$K3d$j9~$_$,H/@8$9$k2DG=@-$,$"$k!#(J $B$7$+$7$J$,$i!">o;~2TF0$N%(%_%e%l!<%7%g%s$O!"9bIi2Y$N%o%j$K8+JV$j$,>.$5$$!#(J $B%b%i%H%j%"%`4|4V$r@_$1$k$N$,8=
$BI=(J. $B%k!<%W%U%i%0(J
$B%U%#!<%k%I(J $BFbMF(J
0x04 $B%+%l%s%H%V%m%C%/$N@hF,$r%k!<%W%"%I%l%9$K@_Dj$9$k!#(J
0x02 $B%(%s%Y%m!<%W$r6/@)Dd;_$7$J$$!#(J
0x01 $B%+%l%s%H%V%m%C%/$r1iAU8e!"%k!<%W%"%I%l%9$K%8%c%s%W$9$k!#(J 0x02$B$,@_Dj$5$l$F$$$J$$$H!"%(%s%Y%m!<%W$r6/@)Dd;_$9$k!#(J

$BAH$_9g$o$;$H$7$F$O0J2<$N(J5$BDL$j$H$J$k(J($B%k!<%W%"%I%l%9$,6/@)E*$K@_Dj$5$l$?>l9g$O!"$3$N8B$j$G$O$J$$(J)$B!#(J

$BI=(J. $B%k!<%W%U%i%0$NAH$_9g$o$;(J
$B%k!<%W%U%i%0(J $BFbMF(J
0x06,0x04 $B%+%l%s%H%V%m%C%/$N@hF,$r%k!<%W%"%I%l%9$K@_Dj$9$k!#(J
0x03 $B%+%l%s%H%V%m%C%/1iAU8e!"%k!<%W%"%I%l%9$K%8%c%s%W$9$k!#(J
0x07 $B>e#2$D$NAH$_9g$o$;$K$h$j!"%+%l%s%H%V%m%C%/$r1d!9$H1iAU$9$k!#(J
0x01 $B%k!<%W%"%I%l%9$K%8%c%s%W$9$k$,!"%(%s%Y%m!<%W$rDd;_$9$k$N$GL52;$K$J$k!#(J
0x05 $B%+%l%s%H%V%m%C%/$r1d!9$H1iAU$9$k$,!"%(%s%Y%m!<%W$rDd;_$9$k$N$GL52;$K$J$k!#(J

$B6&DL%N%$%:GH7A(J

ADPCM$BGH7A$NBX$o$j$KMQ$$$k%i%s%@%`GH7A$N$3$H!#(J $B%A%c%M%kKh$K$I$A$i$+$rA*Br$G$-$k$,!"(J $B%A%c%M%kKh$K0[$J$k%N%$%:GH7A$rF@$k$H$$$C$?$3$H$O=PMh$J$$!#(J

$B%"%k%4%j%:%`(J

/*
 * $B%l%Y%kJQ2=;~$N7W;;<0(J
 */
char Addition[64] = {
    1, 0, 0, 1, 0, 1, 1, 0,
    1, 0, 0, 1, 0, 1, 1, 0,
    1, 0, 0, 1, 0, 1, 1, 0,
    1, 0, 0, 1, 0, 1, 1, 0,
    0, 1, 1, 0, 1, 0, 0, 1,
    0, 1, 1, 0, 1, 0, 0, 1,
    0, 1, 1, 0, 1, 0, 0, 1,
    0, 1, 1, 0, 1, 0, 0, 1
};

NoiseLevel = (short) (NoiseLevel + NoiseLevel + Addition[(NoiseLevel >> 10) & 63]);


/*
 * $B%l%Y%kJQ2=$N<~4|(J
 */
Freq = 0x8000 >> (NoiseClock >> 2);


/*
 * $B<~4|$,H>8:$9$kIQEY(J
 */
Half = ((NoiseClock & 3) * 2) / (4 + (NoiseClock & 3));

$B%j%P!<%V(J

$B%"%k%4%j%:%`(J

/*
 * PlayStation Reverberation Algorithm (C)Dr.Hell, 2005
 * $B87L)$K$O!":81&$N=hM}$N%?%$%_%s%0$O(J1$B%5%s%W%j%s%0;~4V$:$l$F$*$j!"(J
 * $B3F!9$O(J2$B%5%s%W%j%s%0;~4VKh$K
          

CD($B%3%s%Q%/%H%G%#%9%/FI9~$_AuCV(J)

CD$B%3%^%s%I(J

$BI=(J. CD$B%3%^%s%I$N0z?t(J
$BHV9f(J $B%3%^%s%IL>(J $B?t(J 1 2 3
0x00 Sync 0


0x01 Nop 0


0x02 Setloc 3 AMin ASec AFrac
0x03 Play 0/1 Track

0x04 Forward 0


0x05 Backward 0


0x06 ReadN 0


0x07 Standby 0


0x08 Stop 0


0x09 Pause 0


0x0A Reset 0


0x0B Mute 0


0x0C Demute 0


0x0D Setfilter 2 File Chan
0x0E Setmode 1 Mode

0x0F Getparam 0


0x10 GetlocL 0


0x11 GetlocP 0


0x12 ReadT 1 0x01

0x13 GetTN 0


0x14 GetTD 1 Track

0x15 SeekL 0


0x16 SeekP 0


0x17 Setclock



0x18 Getclock



0x19 Test 1 Num

0x1A Id 0


0x1B ReadS 0


0x1C Init 0


0x1D




0x1E ReadTOC 0


0x1F





$BI=(J. CD$B%3%^%s%I$N7k2L(J($B0l
$BHV9f(J $B%3%^%s%IL>(J $B=jMW(J
$B%/%m%C%/(J
$B&R(J% $B3d$j(J
$B9~$_(J
$B?t(J 1 2 3 4 5 6 7 8
0x00 Sync

0x03 1 Stat






0x01 Nop 30547 23 0x03 1 Stat






0x02 Setloc 31557 7 0x03 1 Stat






0x03 Play 51444
0x03 1 Stat






0x04 Forward 193250 12 0x03 1 Stat






0x05 Backward 125119 0 0x03 1 Stat






0x06 ReadN 75701 7 0x03 1 Stat






0x07 Standby 74753 5 0x03 1 Stat






0x08 Stop 43503 13 0x03 1 Stat






0x09 Pause 27648 24 0x03 1 Stat






0x0A Reset 80295 12 0x03 1 Stat






0x0B Mute 36114 41 0x03 1 Stat






0x0C Demute 32768 10 0x03 1 Stat






0x0D Setfilter 39105 48 0x03 1 Stat






0x0E Setmode 41082 52 0x03 1 Stat






0x0F Getparam 40163 25 0x03 5 Stat Mode 0x00 File Chan


0x10 GetlocL 43335 20 0x03 8 $B%;%/%?$N(J13$BHVL\!A(J20$BHVL\$N%G!<%?(J($B$D$^$j(JRead,SeekL$B$,I,MW(J)
0x11 GetlocP 37937 17 0x03 8 Track Index Min Sec Frac AMin ASec AFrac
0x12 ReadT 98762 13 0x03 1 Stat






0x13 GetTN 40833
0x03 3 Stat Begin End




0x14 GetTD 39091
0x03 3 Stat AMin ASec




0x15 SeekL 41771 25 0x03 1 Stat






0x16 SeekP 62041 40 0x03 1 Stat






0x17 Setclock











0x18 Getclock











0x19 Test(0x20) 40864 14 0x03 4 Year Mon Day Ver



0x1A Id 30980 22 0x03 1 Stat






0x1B ReadS 81925 2 0x03 1 Stat






0x1C Init 25847 29 0x03 1 Stat






0x1D












0x1E ReadTOC 73292 10 0x03 1 Stat






0x1F













$BI=(J. CD$B%3%^%s%I$N7k2L(J($BFs
$BHV9f(J $B%3%^%s%IL>(J $B=jMW(J
$B%/%m%C%/(J
$B&R(J% $B3d$j(J
$B9~$_(J
$B?t(J 1 2 3 4 5 6 7 8
0x00 Sync











0x01 Nop











0x02 Setloc











0x03 Play

0x01 8 Stat Track Index A/Min A/Sec A/Frac LvHi LvLo
0x04 Forward











0x05 Backward











0x06 ReadN

0x01 1 Stat






0x07 Standby 51429486 55 0x02 1 Stat






0x08 Stop 12767194 2 0x02 1 Stat






0x09 Pause 3665794 0 0x02 1 Stat






0x0A Reset 3656479 6 0x02 1 Stat






0x0B Mute











0x0C Demute











0x0D Setfilter











0x0E Setmode











0x0F Getparam











0x10 GetlocL











0x11 GetlocP











0x12 ReadT 57701665 0 0x02 1 Stat






0x13 GetTN











0x14 GetTD











0x15 SeekL

0x02 1 Stat






0x16 SeekP

0x02 1 Stat






0x17 Setclock











0x18 Getclock











0x19 Test(0x20)











0x1A Id 19658 1 0x02 8 0x02 0x00 0x20 0x00 'S' 'C' 'E' 'I'
0x1B ReadS

0x01 1 Stat






0x1C Init











0x1D












0x1E ReadTOC 31330364 14 0x02 1 Stat






0x1F













$BI=(J. $B%3%^%s%I$NJdB-;v9`(J
$B%3%^%s%IL>(J $BJdB-;v9`(J
Play Setmode$B$G(J0x04$B$rN)$F$k$H!"(JAFrac(BCD)$B$N2<0L(J4$B%S%C%H$,(J0$B$N;~$K%l%]!<%H$rJV$9!#>e0L$,4q?t$N;~$O0LCV>pJs$,%H%i%C%/AjBP$K$J$k$,!"$=$N:]%U%i%0$H$7$F(JSec(BCD)$B$N(J0x80$B$,N)$D!#(J
Reset $B0LCV$b%[!<%`%]%8%7%g%s$KLa$k!#(J
ReadT $B0z?t$O(J0x01$B0J30>e
GetTD $B0z?t$r(J0x00$B$K$9$k$HA4%H%i%C%/$N9g7W$K$J$k!#(J
Init $B>5G'8e$b;C$/;~4V$r$"$1$kI,MW$,$"$k!#(J

$BDL?.%G%P%$%9(J(Comms Device or COMA)

$B=`HwCf(J


$BFH<+2r@O%W%m%0%i%`72(J

$B=`HwCf(J


$B%(%_$e$C$F$7$^$&$^(J

$BN(JXEBRA/ARBEX)$B!W$r8x3+$9$k!#(J



[PR]‰½‚©‚π’T‚·‘O‚Ι–³—Ώθ‚’:“–‚½‚ιI–³—Ώθ‚’w½ΛίΨΑ­±Ω‚ΜŠΩx