コンピュータ等

[ リスト | 詳細 ]

記事検索
検索

全3ページ

[1] [2] [3]

[ 次のページ ]

音声合成のプログラムするひとの ために
参考になれば とて
私の言語のなかから 抜粋しました
参考になれば いいが

あっしは だいぶ 苦労してしもうたもので


CNVCHRS2U:(*I,*O) /* シフトジスからユニコードへ */
DS.B *I
DS.B *O
/A MOV EBX,[EBP] ;*PR
/A MOV EAX,[EBP+4] ;*PR1
/A INVOKE MultiByteToWideChar,CP_ACP,0,EBX,-1,EAX,128 


DC.B CLBFID1  'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v10.0\Voices',0,0,0
DC.B CLBFID2  'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v10.0\Voices\Tokens\TTS_MS_ja-JP_Haruka_10.0',0,0,0


/*
define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) \
    ( (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) )
 
*/

CNVCHRS2U(CLBFID1,LBFID1) /* シフトジスからユニコードへ */
CNVCHRS2U(CLBFID2,LBFID2)
TRSWT(10H,'CV=',0)
MOVE 256 TO WKL
WRITEHAND(1,*OHAND,LBFID1,WKL)
TRSWT(10H,'CV=',0)
MOVE 256 TO WKL
WRITEHAND(1,*OHAND,LBFID2,WKL)


SET LBFID1 TO *P
SET LBFID2 TO *P1
CLR WKL
  /* ( (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) )  */


/A MOV EAX,EBP
/A ADD EAX,20
/A MOV EAX,0
/A PUSH EAX

/A MOV EAX,[EBP+4]
/A ;mov eax,0
/A PUSH EAX

/A MOV EAX,[EBP]
/A ;mov eax,0
/A PUSH EAX
  
/A MOV EAX,[OBVPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,OBSETID
/A CALL EAX ;I
/A MOV [EBP+16],EAX

TRSWT(10H,'SET=',0)
TRSWT(1,RTST,4)
TRSWT(1,WKL,1)


/A MOV EBX,[OBVPTR]
/A PUSH EBX
/A MOV EAX,[VPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,SETVOICE
/A CALL EAX ;
/A MOV [EBP+16],EAX
TRSWT(10H,'SETst=',0)
TRSWT(1,WKL,4)


/* ** SPERR_INVALID_TOKEN_ID    0x80045041    -2147200959 
E_POINTER                            equ 80004003h
SET=800700A1 0000
指定されたパスは無効です (エラー =800700A1)
 ** SPERR_UNINITIALIZED        0x80045001    -2147201023

 SPERR_NOT_FOUND                                       0x8004503a    -2147200966
   The requested data item (data key, value, etc.) was not found.


*/
アセンブラで 音声合成 私の言語 での サンプル抜粋

DS.L VPTR
DS.L VPTABL
DS.L RELEADSE /* Release */
DS.L SETVOICE /*    ( (This)->lpVtbl -> SetVoice(This,pToken) ) */
DS.L GETVOICE
DS.L SPEEK   /* 80 ( (This)->lpVtbl -> Speak(This,pwcs,dwFlags,pulStreamNumber) ) */

DS.L SETRATE /* 112 ( (This)->lpVtbl -> SetRate(This,RateAdjust) )  */
DS.L SETVOLM /* 120 ( (This)->lpVtbl -> SetVolume(This,usVolume) ) */

DS.L OBVPTR
DS.L OBVPTABL
DS.L OBGETID
DS.L OBSETID

DS.L OBRELEADSE DC.L CLSIDSpVoice 0D941651CH
DC.W CLSID1 44E6H
DC.W CLSID2 4C17H
DC.B CLSID3 0BAH,0DFH,0C3H,68H,26H,0FCH,34H,24H


DC.L IIDISpVoice 6C44DF74H
DC.W IID1 72B9H
DC.W IID2 4992H
DC.B IID3 0A1H,0ECH,0EFH,99H,6EH,04H,22H,0D4H

/*
EXTERN_C const IID IID_ISpVoice;
    MIDL_INTERFACE("6C44DF74-72B9-4992-A1EC-EF996E0422D4")
    Hello
*/


/* 言語変更するです */

DC.L CISSTOK 14056589H
DC.W CISSTOK1 0E16CH
DC.W CISSTOK2 11D2H
DC.B CISSTOK3 0BBH,90H,00,0C0H,4FH,8EH,0E6H,0C0H

/* Release */

/*
class DECLSPEC_UUID(EF411752-3736-4CB4-9C8C-8EF4CCB58EFE)
SpObjectToken;
  MIDL_INTERFACE(14056589-E16C-11D2-BB90-00C04F8EE6C0)
    ISpObjectToken : public ISpDataKey
*/
/* ------------------------------------------- */
DC.L CSPOBJTK 4424CB70H
DC.W CSPOBJTK1 2A7CH
DC.W CSPOBJTK2 43E2H
DC.B CSPOBJTK3 83H,3DH,0CBH,0FDH,82H,0DAH,10H,4FH

/*
EXTERN_C const CLSID CLSID_SpObjectToken;
#ifdef __cplusplus
class DECLSPEC_UUID("4424cb70-2a7c-43e2-833d-cbfd82da104f")
SpObjectToken;
*/
 

/A INVOKE CoInitialize,0


/*
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
CLSCTX_ALL              equ CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER
CLSCTX_INPROC_SERVER equ 1
CLSCTX_INPROC_HANDLER equ 2
CLSCTX_LOCAL_SERVER equ 4
*/

SET CLSIDSpVoice TO *PC1
SET IIDISpVoice  TO *PC2


/A MOV EAX,[EBP+8] ;PC1
/A MOV EBX,[EBP+12] ;PC2
/A MOV ECX,EBP
/A ADD ECX,16 ; *PC3 PR2 64
/A INVOKE  CoCreateInstance,EAX,0,7,EBX,ECX
/A ;MOV EAX,1
/A MOV [EBP+20],EAX


TRSWT(10H,'SP=',0)
TRSWT(1,*PC3,4)
IF WKL = 0
THEN TRSWT(0,' Ok ',0)

SET *PC3 INDEX *PI SET *PC3 TO VPTR
SET *PI TO WKL MOVE WKL TO VPTABL

/A MOV EBX,[VPTABL]
/A ADD EBX,8 ;REEISH
/A MOV EAX,[EBX]
/A MOV RELEADSE,EAX ; Release 

/A MOV EBX,[VPTABL]
/A ADD EBX,72 ; ;hr = pVoice->
/A MOV EAX,[EBX]
/A MOV SETVOICE,EAX

/A MOV EBX,[VPTABL]
/A ADD EBX,76 ; ;hr = pVoice->
/A MOV EAX,[EBX]
/A MOV GETVOICE,EAX

/A MOV EBX,[VPTABL]
/A ADD EBX,80 ; ;hr = pVoice->
/A MOV EAX,[EBX]
/A MOV SPEEK,EAX


/A MOV EBX,[VPTABL]
/A ADD EBX,112 ; ;hr = pVoice->
/A MOV EAX,[EBX]
/A MOV SETRATE,EAX ; 112 ( (This)->lpVtbl -> SetRate(This,RateAdjust) -10 . 10)  



/A MOV EBX,[VPTABL]
/A ADD EBX,120 ; ;hr = pVoice->
/A MOV EAX,[EBX]
/A MOV SETVOLM,EAX ; 120 ( (This)->lpVtbl -> SetVolume(This,usVolume) 0~100%) 


/A MOV EBX,3
/A PUSH EBX
/A MOV EAX,[VPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,SETRATE ;話すスピード設定 -10~10
/A CALL EAX ;IID_ISpVoice


/A MOV EBX,100
/A PUSH EBX
/A MOV EAX,[VPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,SETVOLM ;ボリューム設定 0~100 %
/A CALL EAX ;IID_ISpVoice



ELSE TRSWT(0,' Err ',0)
TRSWT(1,WKL,4)
CLR RELEADSE
END-IF

/* 日本語に設定する */

SET CSPOBJTK TO *PC1
SET CISSTOK  TO *PC2
/A MOV EDX,[EBP+8] ;P
/A MOV EBX,[EBP+12] ;P1
/A MOV ECX,EBP
/A ADD ECX,16 ; *P2
/A INVOKE  CoCreateInstance,EDX,0,7,EBX,ECX
/A MOV [EBP+20],EAX


TRSWT(10H,'OB=',0)
TRSWT(1,*PC3,4)


IF WKL = 0
THEN
TRSWT(0,' Ok ',0)
ELSE TRSWT(0,' Err ',0)
TRSWT(1,WKL,4)
CLR OBRELEADSE
END-IF

SET *PC3 INDEX *PI SET *PC3 TO OBVPTR
SET *PI TO WKL MOVE WKL TO OBVPTABL

/A MOV EBX,[OBVPTABL]
/A ADD EBX,8 ;REEISH
/A MOV EAX,[EBX]
/A MOV OBRELEADSE,EAX ; Release 

/A MOV EBX,[OBVPTABL]
/A ADD EBX,64 ; ;hr = ( (This)->lpVtbl -> GetId(This,ppszCoMemTokenId) ) 
/A MOV EAX,[EBX]
/A MOV OBGETID,EAX

/A MOV EBX,[OBVPTABL]
/A ADD EBX,60 ; ;hr =  ( (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) ) 
/A MOV EAX,[EBX]
/A MOV OBSETID,EAX


/* TRSWT(10H,' TCHK5=',0) TRSWT(5,CSPMMADEN,64) */

WHEN 1 /* SPEEK */

/A MOV EBX,0
/A PUSH EBX
/A PUSH EBX
/A MOV EBX,[EBP]
/A PUSH EBX
/A MOV EAX,[VPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,SPEEK
/A CALL EAX ;IID_ISpVoice ;,0,0;,0,0 ;ISpVoice_Release

WHEN 2 /* CLOSE */

IF RELEADSE = 0
THEN
ELSE
/A MOV EAX,[VPTR] ;
/A PUSH EAX
/A MOV EAX,RELEADSE
/A CALL EAX ;IID_ISpVoice ;,0,0;,0,0 ;ISpVoice_Release
END-IF


IF OBRELEADSE = 0
THEN
ELSE
/A MOV EAX,[OBVPTR] ;
/A PUSH EAX
/A MOV EAX,OBRELEADSE
/A CALL EAX ;IID_ISpVoice ;,0,0;,0,0 ;ISpVoice_Release
END-IF

/A INVOKE CoUninitialize

文字制限にかかったので 後ろの部分



/A invoke SetupDiGetClassDevsA,ADDR InterfaceClassGuid,NULL,NULL,18 ;
/A ;invoke SetupDiGetClassDevsA,NULL,0,0,18; ;
/A MOV [EBP],EAX
/A MOV DeviceInfoTable,EAX

/A INVOKE GetLastError
/A MOV [EBP+8],EAX


/A MOV InterfaceIndex,0

/A MOV DInterfaceDataStructure.cbSize,28;サイズ
/A MOV EAX,OFFSET DInterfaceDataStructure ;データアドレスを転送する
/A MOV InterfaceDataStructure,EAX
/A MOV [EBP+4],EAX
/A INVOKE SetupDiEnumDeviceInterfaces, \
/A DeviceInfoTable,NULL,ADDR InterfaceClassGuid, \
/A InterfaceIndex,InterfaceDataStructure
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV [EBP+8],EAX


/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+8],EAX


/A INVOKE SetupDiDestroyDeviceInfoList,DeviceInfoTable
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+8],EAX


/A INVOKE GetLastError
/A MOV ErrorStatus,EAX
/A MOV [EBP+8],EAX
/A INVOKE SetupDiDestroyDeviceInfoList,DeviceInfoTable   
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV USBEST,EAX
/A MOV [EBP+12],EAX


/A MOV  DevInfoData.cbSize,28
/A MOV EAX,OFFSET DevInfoData
/A MOV PDevInfoData,EAX
/A MOV InterfaceIndex,0

/A INVOKE SetupDiEnumDeviceInfo,DeviceInfoTable, \
/A InterfaceIndex, ADDR DevInfoData
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV [EBP+8],EAX


/A MOV EAX,OFFSET DevInfoData
/A MOV [EBP+4],EAX


/A INVOKE SetupDiGetDeviceRegistryPropertyA,DeviceInfoTable, \
/A ADDR DevInfoData,1, \
/A ADDR dwRegType, NULL, 0, ADDR dwRegSize
/A MOV [EBP+8],EAX
/A MOV EAX,dwRegSize ;実行結果36が帰ってきた
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV [EBP+12],EAX ;7A 122  システム コールに渡されるデータ領域が小さすぎます。


/A MOV EAX,OFFSET DPropertyValueBuffer
/A MOV PropertyValueBuffer,EAX
/A INVOKE SetupDiGetDeviceRegistryPropertyA,DeviceInfoTable, \
/A ADDR DevInfoData, 1, ADDR dwRegType, \
/A PropertyValueBuffer, dwRegSize, NULL

/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV [EBP+8],EAX

/A MOV EAX,StructureSize
/A MOV [EBP],EAX


TRSWT(0H,' StructureSize= ',0) TRSWT(1,WKL,1)


/A MOV DetailedInterfaceDataStructure.cbSize,5
/A ;MOV StructureSize,8 ;????XX
/A INVOKE SetupDiGetDeviceInterfaceDetailA,DeviceInfoTable, \
/A InterfaceDataStructure, NULL, NULL,ADDR StructureSize, NULL   
/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;7AH 122 システム コールに渡されるデータ領域が小さすぎます

/A MOV EAX,StructureSize ;54H で戻っている
/A MOV [EBP+12],EAX
/* 0000  007A  0054 */
TRSWT(0H,' h ',0) TRSWT(1,WKL,1)  TRSWT(1,WKL1,1)  TRSWT(1,WKL2,1)

/A MOV EAX,OFFSET DetailedInterfaceDataStructure
/A MOV [EBP+4],EAX


/A MOV EAX,OFFSET DetailedInterfaceDataStructure
/A MOV PDetailedInterfaceDataStructure,EAX
/A MOV [EBP+4],EAX

/A MOV DetailedInterfaceDataStructure.cbSize,5 ;54H ;54H ;? 58?

/A INVOKE SetupDiGetDeviceInterfaceDetailA,DeviceInfoTable, \
/A  InterfaceDataStructure, PDetailedInterfaceDataStructure, \
/A  StructureSize, 0,0 

/A MOV [EBP],EAX
/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;6F8 1784 要求された操作に対して与えられたバッファが無効です。
/A MOV EAX,StructureSize
/A MOV [EBP+12],EAX


/A INVOKE CreateFile,ADDR DetailedInterfaceDataStructure.DevicePath,\
/A 0C0000000H,3,NULL,3,40000000H,0

/A MOV MyDeviceHandle,EAX
/A MOV [EBP],EAX

/A INVOKE GetLastError
/A MOV [EBP+8],EAX ;7BH 123 ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。


/A INVOKE WinUsb_Initialize,MyDeviceHandle, \
/A ADDR MyWinUSBInterfaceHandle ;
/A MOV BoolStatus,EAX
/A MOV [EBP],EAX


/A INVOKE WinUsb_Free,MyWinUSBInterfaceHandle
/A invoke CloseHandle,MyDeviceHandle


/* ================================================== */


/A MOV EAX,OFFSET GTBFD
/A MOV [EBP+4],EAX

MOVE 80H TO *P

/A INVOKE WinUsb_WritePipe,MyWinUSBInterfaceHandle, \
/A 01, ADDR GTBFD, 64, ADDR BytesWritten, NULL ;  

/A MOV EAX,OFFSET GTBFD
/A MOV [EBP+4],EAX

MOVE 81H TO *P

/A INVOKE WinUsb_WritePipe,MyWinUSBInterfaceHandle, \
/A 01, ADDR GTBFD, 64, ADDR BytesWritten, NULL ;  
/A INVOKE WinUsb_ReadPipe,MyWinUSBInterfaceHandle, \
/A 81H,ADDR GTBFD, 64, ADDR BytesRead, NULL ;  

アセンブラで WinUSB を記述する サンプルを記載しておく



/A は 私の構造化言語の中にアセンブラ記述したものをそのまま複写しておいた

私の言語のローカル変数に値を転送するための記述がある
確認のため や 判定のための 言語記述は除いた

アセンブラで制御を必要とするひとの 参考になれば イインダガ


SetupDiGetClassDevsA proto :DWORD,:DWORD,:DWORD,:DWORD
SetupDiEnumDeviceInterfaces proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
SetupDiDestroyDeviceInfoList proto :DWORD
SetupDiEnumDeviceInfo proto :DWORD,:DWORD,:DWORD

SetupDiGetDeviceRegistryPropertyA proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
SetupDiGetDeviceInterfaceDetailA proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD

WinUsb_Initialize proto :DWORD,:DWORD
WinUsb_WritePipe PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
WinUsb_ReadPipe PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
WinUsb_Free PROTO :DWORD

includelib \WinDDK\7600.16385.0\lib\wxp\i386\WinUsb.lib
includelib \WinDDK\7600.16385.0\lib\wxp\i386\setupapi.lib


/A USBHND HWND ?
/A GGID db 128 dup(?)
/A INTFIND DD ?
/A CBSIZ DD ?


/* 構造体宣言だす */

/A GUID STRUCT ;typedef struct _GUID {
/A Data1 DD ? ;DWORD;      // 00000000-
/A Data2 DW ? ;WORD;       // 0000-
/A Data3 DW ? ;WORD ;       // 0000-
/A Data4 DB 8 DUP(?) ;  BYTE Data4[8];    // C000-000000000046
/A  GUID ENDS ;

/A SP_DEVICE_INTERFACE_DATA STRUCT ;typedef struct _SP_DEVICE_INTERFACE_DATA {
/A cbSize    DWORD ? ;4
/A InterfaceClassGuid   GUID <> ;16
/A Flags   DWORD ? ;4
/A Reserved  DD ? ;4  ULONG_PTR; 32-> 4 ポインター
/A SP_DEVICE_INTERFACE_DATA ENDS ;} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;



/A SP_DEVINFO_DATA  struct 
/A   cbSize   DWORD ? ;4
/A   ClassGuid  GUID <> ;16
/A   DevInst  DWORD ? ;4    // DEVINST handle
/A   Reserved DD ? ;4 ULONG_PTR; 32B ->4 64B ->8 ポインター
/A  SP_DEVINFO_DATA ENDS ;, *PSP_DEVINFO_DATA;


/A SP_DEVICE_INTERFACE_DETAIL_DATA_A struct ; typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
/A  cbSize   DWORD ? ; cbSize;
/A  DevicePath DB ?  ;CHAR   DevicePath[ANYSIZE_ARRAY]; 1 ANYSIZE_ARRAY -> 1
/A  DevicePathD DB 255 DUP(?) ;実行後判定した計算後出てきた 54H
/A SP_DEVICE_INTERFACE_DETAIL_DATA_A ENDS ; } SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;





/A SetupDiGetDeviceRegistryProperty struct ;(
/A DeviceInfoSet   DD ?; __in HDEVINFO ,あらゆる型へのポインター
/A DeviceInfoData DD ? ;   __in PSP_DEVINFO_DATA, 構造体のポインター
/A Property DD ? ;   __in DWORD ,
/A PropertyRegDataType DD ? ;    __out_opt PDWORD, DWORD型へのポインタ
/A PropertyBuffer DD ? ;   __out_bcount_opt(PropertyBufferSize) PBYTE, バイト型 ポインター
/A PropertyBufferSize DD ? ;   __in DWORD,
/A RequiredSize     DD ? ; __out_opt PDWORD DWORD型へのポインタ
/A SetupDiGetDeviceRegistryProperty ENDS



/A InterfaceClassGuid GUID <>
/A SOTST SPDINFDATA <>
/A ;InterfaceDataStructure SP_DEVICE_INTERFACE_DATA <>
/A DInterfaceDataStructure SP_DEVICE_INTERFACE_DATA <>
/A InterfaceDataStructure DD ? ;ポインター
/A DevInfoData SP_DEVINFO_DATA <>;
/A DetailedInterfaceDataStructure SP_DEVICE_INTERFACE_DETAIL_DATA_A <> ;
/A ;CHKTEST DD 01234567H ;
/A PDetailedInterfaceDataStructure DD ? ;上記ポインター


/A PDevInfoData DD ? ;

/A DeviceInfoTable DD ? ;あらゆる型のポインターじゃと

/A InterfaceIndex       DD ? ;                DWORD  = 0;
/A StatusLastError      DD ? ;                  DWORD = 0;
/A dwRegType            DD ? ;            DWORD;
/A dwRegSize            DD ? ;            DWORD;
/A StructureSize        DD ? ;                DWORD = 0;
/A PropertyValueBuffer  DD ? ;                      PBYTE;バイト型ポインター
/A  MatchFound          DD ? ;             bool = false;
/A ErrorStatus          DD ? ;              DWORD;
/A BoolStatus           DD ? ;             BOOL = FALSE;  

/A MyDeviceHandle DD ? ;USB ファイルハンドル
/A MyWinUSBInterfaceHandle DD ? ;USBハンドル
/A DPropertyValueBuffer  DB 128 DUP(?) ;                    
/A BytesWritten DD ? ;
/A BytesRead DD ? ;
/A GTBFD DB 256 DUP(?)




/A MOV InterfaceClassGuid.Data1,58D07210H
/A MOV InterfaceClassGuid.Data2,027C1H
/A MOV InterfaceClassGuid.Data3,011DDH


/A MOV InterfaceClassGuid.Data4[0],0BDH
/A MOV InterfaceClassGuid.Data4[1],0BH
/A MOV InterfaceClassGuid.Data4[2],08H
/A MOV InterfaceClassGuid.Data4[3],00H
/A MOV InterfaceClassGuid.Data4[4],20H
/A MOV InterfaceClassGuid.Data4[5],0CH
/A MOV InterfaceClassGuid.Data4[6],09AH
/A MOV InterfaceClassGuid.Data4[7],066H

/A MOV EAX,OFFSET InterfaceClassGuid
/A MOV [EBP+4],EAX


右上はD/Aコンバータ
ラダー抵抗による
其の下はA/Dコンバータ
ファジー推論による
倒立振子の実験目的に
つくりました
DSPのアセンブラーもつくりました
自作CPUボードからオブジェクトプログラムを
転送して実行する構造です
高速フーリエ変換の計算が速かった
現在のパソコンには
おっつかんだろうが
思い出のボードじゃわい

イメージ 1

全3ページ

[1] [2] [3]

[ 次のページ ]


よしもとブログランキング

もっと見る

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事