■ このスレッドは過去ログ倉庫に格納されています
【友好数探し】ベンチスレ@昔のPC板
- 1 :ナイコンさん:2005/06/27(月) 12:37:46 .net
-
↓68030
∧_∧
( ・∀・)つ
⊂ ノ
(_) ノ ∧_∧
(_) (´∀` )
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`````
`''''''''''''''''''
↑Z80
昔のPCさえあれば、何もいらない。
というわけでもありませんが、お前らの愛機の実力を教えてください。
(友好数とは)そのすべての約数(自分自身を除く)の和が、
互いに相手の数と等しくなるような数のペアのことです。
(測定方法)プログラム実行とともにストップウォッチで秒数を測定
(小数点以下切り捨て)
- 2 :ナイコンさん:2005/06/27(月) 12:38:45 .net
- ソース(MSX C入門より)
以下のプログラムを自分の機種用にアレンジしてください。
算術演算子”MOD(剰余)”がない機種はちょっと厳しいかも。
(MSX-BASIC)
100 DEFINT A-Z
110 FOR J=2 TO 1000
120 N=J: GOSUB 180: IF S<=J THEN 150
130 N=S: GOSUB 180: IF S<>J THEN 150
140 PRINT J;N
150 NEXT J
160 END
170 '
180 S=0
190 FOR I=N/2 TO 1 STEP -1
200 IF (N MOD I)=0 THEN S=S+I
210 NEXT I
220 RETURN
- 3 :ナイコンさん:2005/06/27(月) 12:39:46 .net
- (C言語)
#include <stdio.h>
main()
{
int j, s, sum();
for ( j = 2; j <= 10000; ++j ) {
s = sum( j );
if ( s > j && sum( s ) == j )
printf( "%d %d\n", j, s );
}
}
sum( n )
int n;
{
int i, s;
s = 0;
for ( i = n/2; i >= 1; --i )
if ( (n % i) == 0 ) s += i;
return s;
}
- 4 :ナイコンさん:2005/06/27(月) 12:40:46 .net
- テンプレ
【.メーカー.】
【..機種名....】
【...CPU...... 】
【クロック数】
【.....メモリ.. 】
【.言語 】
【プログラム変更点】
▼スコア
【 220,284 】
【 1184,1210 】
- 5 :参考:2005/06/27(月) 12:41:50 .net
- 【.メーカー.】CASIO
【機種名】FX-870P
【.CPU 】???
【クロック数】???
【.メモリ 】32kB
【.言語 】BASIC
【プログラム変更点】行番号100を削除した。
▼スコア
【 220,284 】7分56秒
【 1184,1210 】
orz ポケコンは厳しい。。。
- 6 :ナイコンさん:2005/06/27(月) 13:57:57 .net
- 実行してやってもいいが、この板で最速だとおもうぜ。
- 7 :ナイコンさん:2005/06/27(月) 14:28:02 .net
- 486系なら、DX4を積んだTOWNSかPC-98が最速?
- 8 :ナイコンさん:2005/06/27(月) 18:29:07 .net
- 最速バトルも良いけど、クラシックレースも気になるな。
マシンそのものとプログラム環境が残ってるかどうか厳しいだろうけど。
俺はMSXとかファミリーベーシックとかショボイのしかできないけどな。
- 9 :ナイコンさん:2005/06/27(月) 19:41:29 .net
- しょぼくてもいいんでない?昔のPCスレだし
ミッレミリアみたいにマターリといくザンス
- 10 :ナイコンさん:2005/06/27(月) 19:42:32 .net
- 機種毎のリストがあれば嬉しい
- 11 :ナイコンさん:2005/06/27(月) 20:17:22 .net
- >>6
て言うか多分、たかがこれだけをどれだけ遅く実行するか
のコンペになりそうな予感
- 12 :ナイコンさん:2005/06/27(月) 21:39:57 .net
- ( ´・ω・)
プログラム間違えた。。。
>2の110行目は、
× 110 FOR J=2 TO 1000
○ 110 FOR J=2 TO 10000
だった。じゃなきゃ【 1184,1210 】なんて出るわきゃーない。orz
今MSX2+で30分も計算してたのに、パーんなってもうた。
- 13 :ナイコンさん:2005/06/27(月) 21:53:15 .net
-
>9 おっさんくす。
俺も乗ってみるわ。
- 14 :ナイコンさん:2005/06/27(月) 22:26:42 .net
- 気を取り直して再チャレンジ
【.メーカー.】 Panasonic
【..機種名....】 FS-A1WX
【...CPU...... 】 Z80A相当
【クロック数】 3.579545MHz
【.....メモリ.. 】 メインRAM 64KB
【.言語 】 MSX-BASIC ver3.0
【プログラム変更点】 110行目の「FOR J=2 TO 1000」は、
「FOR J=2 TO 10000」の間違いですた。
▼スコア
【 220,284 】 1分36秒
【 1184,1210 】 44分12秒
まぁこんなものだ罠
- 15 :ナイコンさん:2005/06/27(月) 23:00:53 .net
- おいらP6だけど,MODないよ〜
ちなみにMODのない機種は,MODのところを
N MOD I → N - INT( N / I ) * I
に変更する.
- 16 :ナイコンさん:2005/06/28(火) 07:48:16 .net
- >15
おっさんくす。パピコンの挑戦待ってるぜ!
- 17 :ナイコンさん:2005/06/29(水) 14:44:16 .net
- 穂っ主
- 18 :ナイコンさん:2005/06/29(水) 15:00:51 .net
- >>17
この板は絶対に落ちないので不要です。
- 19 :ナイコンさん:2005/06/29(水) 22:41:26 .net
- 名機ポケコンを発掘して>15に倣ってみますた。
【.メーカー.】CASIO
【機種名】PB-100
【.CPU 】???
【クロック数】???
【.メモリ 】2kB (1kb増設済み)
【.言語 】BASIC
【プログラム変更点】
・行番号100、170を削除した。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・200行目、(N MOD I) → (N - INT( N / I ) * I) に変更する
▼スコア
【 220,284 】(約)17分30秒
【 1184,1210 】
orz
- 20 :ナイコンさん:2005/07/03(日) 16:11:42 .net
- X68000でCコンパイラでやってみた
[6232,6368]11分30秒
今のパソコンでやったら数秒かな
- 21 :ナイコンさん:2005/07/03(日) 19:19:18 .net
- >>20乙。
(´ω`)やっぱりコンパイラは早えーな。。。
もちろん今のパソコンだと99BASICでも数秒ですが。
- 22 :ナイコンさん:2005/07/03(日) 22:30:51 .net
- 【.メーカー.】 任天堂
【..機種名....】 ファミリーコンピュータ
【...CPU...... 】 6502カスタム
【クロック数】 ???MHz
【.....メモリ.. 】 2KB
【.言語 】 NS-HUBASIC V2.1A
【プログラム変更点】
100行 不要
110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
150、210行の変数(I、J)不要
▼スコア
【 220,284 】 50秒
【 1184,1210 】 21分49秒
MSX2に勝ったぜベイビー
- 23 :ナイコンさん:2005/07/04(月) 14:57:03 .net
- >MSX2に勝ったぜベイビー
まったりとコメントでよろし.しかし若干加齢臭も感じる‥‥
コンパイラでもOKなら,うちにP6用のEXASコンパイラがあったな‥‥
- 24 :ナイコンさん:2005/07/04(月) 22:55:29 .net
- もちろんプログラムのフローが同じなら、コンパイラでもおk
- 25 :ナイコンさん:2005/07/04(月) 23:49:34 .net
- 個々にチューニングするのはokな訳ですね.
よーし,DMA切ったる!
しまった,画面が見えない (涙
- 26 :ナイコンさん:2005/07/05(火) 01:06:14 .net
- 【.メーカー】EPSON
【機種名】PC-286C
【.CPU 】i80286
【クロック数】10MHz
【.メモリ 】640KB
【.言語 】N88日本語BASIC(86) Ver5.0
【プログラム変更点】
110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
▼スコア
【 220,284 】11秒
【 1184,1210 】 5分01秒
こんなもんかね・・・
- 27 :ナイコンさん:2005/07/05(火) 07:05:28 .net
- (´ω`)
- 28 :ナイコンさん:2005/07/05(火) 11:27:52 .net
- (´ω`).。oO(ヤッパリぴゅう太は速いのかな・・・・・・・・・)
- 29 :ナイコンさん:2005/07/05(火) 11:55:55 .net
- >お前らの愛機の実力を教えてください。
BASICで実力?
機械語じゃねーと意味ねーだろ。
- 30 :ナイコンさん:2005/07/05(火) 13:32:19 .net
- だったら機械語でかけば?
フローが同じならプログラムに変更加えてもいいわけですから.
(車がクラシックカーだったらチューニングは自由というのと同じ)
- 31 :ナイコンさん:2005/07/05(火) 13:35:34 .net
- - 終了 -
- 32 :ナイコンさん:2005/07/05(火) 17:18:02 .net
- (´ω`)ハンドアセンブルは時間が掛かるからな。。。
止めはしませんが、プログラミングに何時間も掛けるのは本末転倒かも。
- 33 :ナイコンさん:2005/07/05(火) 20:03:32 .net
- ぴゅう太とS1が気になる。。。
- 34 :ナイコンさん:2005/07/05(火) 21:38:50 .net
- 日本語BASICのプログラムも載せておかないとダメなんじゃない?
50 モシ A=1 ナラバ ソレカラ 100ニイケ
- 35 :ナイコンさん:2005/07/12(火) 12:43:38 .net
- (´ω`)自分の持ってるPCへの移植ぐらい自分でしてもらわんと。
- 36 :ナイコンさん:2005/07/23(土) 10:56:13 .net
-
- 37 :ナイコンさん:2005/07/23(土) 10:57:13 .net
- あげ忘れた。。。
- 38 :HC-20にて実行中:2005/08/15(月) 00:25:49 .net
- >>33
会吸わんは速そうだ。
- 39 :ナイコンさん:2005/08/15(月) 06:35:14 .net
- 起きたらでけてた。
【.メーカー.】EPSON
【機種名】HC-20
【.CPU 】6301×2
【クロック数】641kHz?
【.メモリ 】16KB
【.言語 】BASIC
【プログラム変更点】
・90行目に「PRINT TIME$」を追加しますた。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・140行目「PRINT J; N」のお尻に「; TIME$」を追加しますた。
・150、210行目の変数(I、J)不要
・その他、各予約語の後ろの空白を可能なものにつき削りますた。行頭の字下
げはそのまま。
▼スコア
【 220,284 】00:03:10
【 1184,1210 】01:24:21
【処理時間(秒)×Clock周波数】
◎ 220,284 (3*60+10)*641*1000=121,790,000
◎ 1184,1210 (1*3600+24*60+21)*641*1000=3,244,101,000
クロック数が低い割に検討してます。
- 40 :ナイコンさん:2005/08/15(月) 06:35:47 .net
- ×検討
○健闘
orz
- 41 :ナイコンさん:2005/08/15(月) 09:04:52 .net
- >>39
久々の参入Z。
- 42 :ナイコンさん:2005/08/15(月) 20:57:52 .net
- >>41
d。他にも現れないかな。
- 43 :ナイコンさん:2005/08/18(木) 21:29:55 .net
- 【.メーカー.】富士通
【..機種名....】FM-NEW7
【...CPU...... 】68B09×2
【クロック数】2MHz
【.....メモリ.. 】32KB/64KB
【.言語 】F-BASIC 3.0
【プログラム変更点】
・90行目に「TIME$="00:00:00"」を追加しますた。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・140行目「PRINT J; N」のお尻に「; TIME$」を追加しますた。
▼スコア
【 220,284 】1分15秒
【 1184,1210 】34分17秒
ファミコンに勝てなかった。
- 44 :ナイコンさん:2005/08/21(日) 22:07:23 .net
- 6809でも勝てないのか・・・
- 45 :ナイコンさん:2005/08/22(月) 01:35:50 .net
- クロックが速いのにそんなに遅いかな?
うちでも試してみるYO!
あ、BASICが遅い可能性大だな。
- 46 :ナイコンさん:2005/08/22(月) 02:22:47 .net
- FM-7のBASICはそこそこ早かったような気がするけど‥‥
PAINTが早かっただけかな?
- 47 :FM77AVでやってみた:2005/08/25(木) 22:20:48 .net
- NEW7よりちょっと速いが、、、、ファミリーベーシック恐るべし。整数型なの
かな?
【.メーカー.】富士通
【..機種名....】FM77AV
【...CPU...... 】68B09E×2
【クロック数】2MHz
【.....メモリ.. 】32KB/64KB
【.言語 】F-BASIC 3.0 (disk版)
【プログラム変更点】
・90行目に「TIME$="00:00:00"」を追加しますた。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・140行目「PRINT J; N」のお尻に「; TIME$」を追加しますた。
・その他、各予約語の後ろの空白を可能なものにつき削りますた。行頭の字下
げはそのまま。
▼スコア
【 220,284 】1分05秒
【 1184,1210 】29分36秒
F-BASIC 3.3L10でやったら最初のが1分22秒だったので、途中で止めました。
いくらなんでも遅過ぎ。
こんどはAppleIIeでやってみるかな。
- 48 :ナイコンさん:2005/08/26(金) 16:32:58 .net
- FMシリーズキタ━━━━━(゚∀゚)━━━━━ !!!!!
ファミコンはゲームに最適化したから計算も速いとか。
なんにしてもメモリが少ないからおよそパソコンとしてはアレですが。
- 49 :20:2005/08/27(土) 09:43:28 .net
- X68000で10MHzでX−BASICでやってみたらファミコンと
同じような結果でした
ファミコン速いなあ
- 50 :ナイコンさん:2005/08/27(土) 23:27:42 .net
- それはX-BASICが遅いだけじゃないかい?
上のPC-286Cに大差で負けてるよ。
- 51 :>>20:2005/08/28(日) 14:20:39 .net
- 【.メーカー.】SHARP
【機種名】X68000XVI('91)
【.CPU 】68000
【クロック数】16/10MHz(10MHzで実行)
【.メモリ 】8MB
【.言語 】X-BASIC
【プログラム変更点】X-BASIC風にかなり改悪
▼スコア
【 220,284 】51秒
【 1184,1210 】22分51秒
PCMやMOUSE等の設定を外したけどあまり速くならなかった
10MHzだとファミコンにも負ける・・・
- 52 :ナイコンさん:2005/08/28(日) 15:34:00 .net
- なんだかんだ言ってこのスレの最強のハードはファミコンなのか?!
- 53 :ナイコンさん:2005/08/29(月) 00:55:24 .net
- X68で、ぺけBASICでキボン
- 54 :ナイコンさん:2005/08/29(月) 08:22:13 .net
- 盛り上がってまいりました
- 55 :ナイコンさん:2005/08/29(月) 13:21:13 .net
- 【.メーカー.】シャープ
【..機種名....】X1
【...CPU...... 】Z80A
【クロック数】4MHz
【.....メモリ.. 】64KB
【.言語 】dB-IBASIC 1.0
【プログラム変更点】
・行番号100を削除。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。▼スコア
【 220,284 】44秒
【 1184,1210 】20分15秒
- 56 :ナイコンさん:2005/08/29(月) 14:56:26 .net
- 10台エントリーされたので、集計しますた。
なるべく窓を大きくして見てくださいです。
ずれてて見づらいのはスマソ。
【機種名】..........【クロック】....... 【メモリ】.... 【言語】.............. 【220'284】.... 【1184'1210】
PC-286C 10MHz 640KB N88日本語BASIC(86) Ver5.0 11秒 5分01秒
X1............ 4MHz... 64KB dB-IBASIC 1.0........ 44秒 20分15秒
ファミリーコンピュータ ???MHz... 2KB NS-HUBASIC V2.1A. 50秒 21分49秒
X68000XVI('91) 10MHz.. 8MB X-BASIC.......... 51秒 22分51秒
FM77AV....... 2MHz 32KB/64KB F-BASIC 3.0 (disk版).............. 1分05秒 29分36秒
FM-NEW7....... 2MHz 32KB/64KB F-BASIC 3.0... 1分15秒 34分17秒
FS-A1WX.... 3.6MHz 64KB MSX-BASIC ver3.0. 1分36秒.... 44分12秒
HC-20........ 641kHz?.. 16KB BASIC........ 3分10秒 1時間24分21秒
FX-870P... ???....... 32KB BASIC........ 7分56秒
PB-100...... ???...... 2KB BASIC......... 17分30秒
- 57 :ナイコンさん:2005/08/29(月) 19:32:31 .net
- 【.メーカー.】シャープ
【..機種名....】X1
【...CPU...... 】Z80A
【クロック数】4MHz
【.....メモリ.. 】64KB
【.言語 】CZ-8CB01(HuBASIC) 1.0
【プログラム変更点】
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・90行にTIME$="00:00:00"、140行に;TIME$を追加
▼スコア
【 220,284 】1分06秒
【 1184,1210 】29分46秒
【 2620,2924 】2時間24分24秒
- 58 :>:2005/08/29(月) 19:37:44 .net
- 普通NEWBASICでないのん?
- 59 :ナイコンさん:2005/08/29(月) 20:01:22 .net
- ぬーべーしっくでこういう計算変わるかな〜?
- 60 :ナイコンさん:2005/08/29(月) 20:47:41 .net
- お、ついにファミコン超えたね。
やっぱ整数に特化ってのが効くのか。
- 61 :ナイコンさん:2005/08/29(月) 20:48:31 .net
- >52
また一つ伝説がw
>54
あれ、嬉しいねえ。
>56
乙彼〜
>59
変わると思う。
- 62 :61:2005/08/29(月) 22:37:09 .net
- 掛かった時間とクロック周波数を掛けてみた。ファミコンのクロックは1.79MHzだた。
表の見方は、数字が小さいほど速い。
【機種名】 【クロック】 【220'284】 【1184'1210】(秒数×クロックMHz)
PC-286C. 10MHz. 110. 3010
X1... 4MHz... 176. 4860
ファミリーコンピュータ. 1.79MHz.. 89.5.. 2343
X68000XVI('91) 10MHz... 510.. 13710
FM77AV 2MHz.. 130.. 3552
FM-NEW7 2MHz.. 150.. 4114
FS-A1WX 3.6MHz... 345.6. 9547
HC-20 641kHz?..... 121.79.. 3244
FX-870P.. ???....... 7分56秒
PB-100. ???...... 17分30秒
○やはりファミコンがずば抜けて速い。クロック周波数勘案でその次に速いの
はなんとHC-20w
○X-BASICはなぜこんなに遅いのか?
- 63 :ナイコンさん:2005/08/29(月) 23:03:36 .net
- X-BASICはC言語モドキで他機種とは全く構造違うからじゃね?
- 64 :ナイコンさん:2005/08/29(月) 23:54:17 .net
- コンパイル前提だったんじゃないかな。
中間コードに変換とかしてたっけ?
- 65 :ナイコンさん:2005/08/30(火) 00:13:34 .net
- そういえば、大昔、BASICインタプリタのベンチマーク競争が結構盛んだった
頃があったな。AppleIIの整数BASICとTRS-80のLevel2 BASICとどっちが速いみたいな。
ああいうベンチマーク競争っていつ頃、どうして終焉したんだろう? よく憶えていない。
ま、右を見ても、左を見ても、MS製のインタプリタばかりで面白くなくなったからとか、
MSがベンチマークコードに最適化かけたからとか、そうしたことが原因なんだろうけど。
- 66 :ナイコンさん:2005/08/30(火) 01:14:02 .net
- M5のBASIC-Gって期待できそ。
>>64
んだんだ
- 67 :ナイコンさん:2005/08/30(火) 01:16:45 .net
- >>64
あ、BASIC→Cのソースに変換
- 68 :ナイコンさん:2005/08/30(火) 20:08:41 .net
- Cにしてコンパイルした結果規模ン
- 69 :ナイコンさん:2005/08/30(火) 20:17:03 .net
- >>20 にあるがね
>>62
6809は内部2倍でなかったっけ
- 70 :ナイコンさん:2005/08/31(水) 00:00:13 .net
- >>67
そうだった、Cコンパイラに付属だったんだ。たしか。
>>69
FM-7のは8MHzを分周して2MHz動作だったはず。
AVのは違うかも。
- 71 :ナイコンさん:2005/08/31(水) 00:05:59 .net
- >>69
>>20
ホントだ…何度も見たのに忘れていた。
68系は(8080も確か)二相クロックなので倍クロック相当といえるが、内部での
逓倍はしていないはず。ちなみにZ80は二相クロックを止めて内部回路を単純
化した結果、高速にできたそうだ。外部バスのタイミングに余裕がなくなった
みたいだけど。
- 72 :名無しさん@そうだ選挙に行こう:2005/09/10(土) 19:24:01 .net
- 【.メーカー.】SHARP
【..機種名....】PC-E500
【...CPU...... 】SC62015
【クロック数】2.3MHz ?
【.....メモリ.. 】64k(増設)
【.言語 】BASIC
【プログラム変更点】
・行番号100を削除
・MOD判定を「N=INT(N/I)*I」に変更
・NEXTの変数削除
▼スコア
【 220,284 】3分58秒
【 1184,1210 】 (まだ計算中)
ポケコンなめんな。でもクロックの割に遅いような。
しかしTIME$のあるマシンがうらやましい。
ちなみにNEXTの変数を残したら4'09
- 73 :72:2005/09/10(土) 21:12:20 .net
- 途中でねちまった。
もいちど計算だ。
- 74 :名無しさん@そうだ選挙に行こう:2005/09/11(日) 18:41:52 .net
- 【.メーカー.】 NEC
【..機種名....】 PC-98DO
【...CPU...... 】 V30 / μPD70008AC-8
【クロック数】 10MHz / 8MHz
【.....メモリ.. 】 640KB / 192KB
【.言語 】 N88-BASIC(86) Ver2.0 / N88-BASIC Ver2.3
【プログラム変更点】
・90行目に「TIME$="00:00:00"」を追加しますた。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・140行目「PRINT J; N」のお尻に「; TIME$」を追加しますた。
▼スコア
【 220,284 】 00:00:22 / 00:00:45
【 1184,1210 】 00:09:56 / 00:20:37
- 75 :名無しさん@そうだ選挙に行こう:2005/09/11(日) 21:06:08 .net
- V30キタ━━━━━(゚∀゚)━━━━━ !!!!!
10Mと8Mで偉く速度が違う…ってV30とZ80H相当なのね。
乙>>72,73
matahritoマテルヨ
- 76 :72:2005/09/12(月) 23:29:14 .net
- どうせだからマシン語でやろうかとも思ったのだが、最近そんな元気がでない。
みんな、ちょっとずつでいいからオラに元気を
- 77 :ナイコンさん:2005/09/13(火) 00:28:21 .net
- いまだマシン語でやろうとするアンタはすごすぎ
- 78 :ナイコンさん:2005/09/13(火) 07:07:41 .net
- >>76
機種は何よ?
- 79 :72:2005/09/13(火) 22:54:50 .net
- 上で書いたとおり、10数年前のSHARPのポケコン。
実際のところ、MODの計算を除けばループと数値判定くらいだし、
変数も4つしかでてこないしで、なんとかなるんじゃないかなあ
くらいに思ってるところ。
- 80 :ナイコンさん:2005/09/14(水) 23:09:11 .net
- >>79
メール欄見落としていた。素満。SC62015って面白いCPUだね。6809に似ている
と思った。それではとっておきを
つ【始原の混沌の気】
- 81 :72:2005/09/15(木) 01:34:05 .net
- すこしずつ元気がたまってきました。
これはがんばるしか!?
と思ったけどニーモニック表がない。活研(E500シリーズのバイブル)は実家だし。
みんな、ちょっとずつでいいからオラに資料を orz
- 82 :ナイコンさん:2005/09/15(木) 04:36:19 .net
- >>81
http://web.archive.org/web/20031007214858/www.hepl.phys.nagoya-u.ac.jp/~mitsuru/urawaza.txt
>第3章 PC−E500シリーズマシン語講座
- 83 :72:2005/09/16(金) 01:20:29 .net
- >>82
おおおっ
あついぜ、なつかしいぜ、ちゃんとサイクル数までのってるぜ。
これでもう逃げられないぜ。いやまだ逃げれるかもだぜ。
ていうか、r2〜r4の指定とか、TEST命令とか、もういろんなことを忘れている
ことを再認識したさ。
仕様どおりに動くものは作れても、もうまともなマシン語プログラムは作れない予感。
- 84 :ナイコンさん:2005/09/16(金) 22:33:35 .net
- 一度自転車に乗れるようになった奴が乗れなくなるとでも?w
- 85 :72:2005/09/17(土) 01:36:12 .net
- そうだ、おれはチャリに乗ったことがあるんだ!
(乗り回していたんだといいきれないむなしさ)
今回のはMOD判定がキモだろうから、とりあえずそこを考えてみた。
BASICでいうとこんな感じかなあ。
1100 *MOD REM IF (N MOD I)=0 THEN S=S+I
1110 M=N
1200 IF I AND 128 THEN 1280
1201 I=I+I:IF I AND 128 THEN 1270
1202 I=I+I:IF I AND 128 THEN 1260
1203 I=I+I:IF I AND 128 THEN 1250
1204 I=I+I:IF I AND 128 THEN 1240
1205 I=I+I:IF I AND 128 THEN 1230
1206 I=I+I:IF I AND 128 THEN 1220
1207 I=I+I
1210 IF M>=I THEN M=M-I
1215 I=I/2
1220 IF M>=I THEN M=M-I
1225 I=I/2
1230 IF M>=I THEN M=M-I
1235 I=I/2
1240 IF M>=I THEN M=M-I
1245 I=I/2
1250 IF M>=I THEN M=M-I
1255 I=I/2
1260 IF M>=I THEN M=M-I
1265 I=I/2
1270 IF M>=I THEN M=M-I
1275 I=I/2
1280 IF M>=I THEN M=M-I
1300 IF M=0 THEN S=S+I
1399 RETURN
- 86 :ナイコンさん:2005/09/17(土) 06:25:04 .net
- 於津>>85
ポケコンは知らない素人だけど、2点気になった。
・乗除算ってそこまで遅いのかな?
・8ビット分だけで足りる?
- 87 :ナイコンさん:2005/09/17(土) 10:31:23 .net
- というか,乗除算ってあるの?
Z80にはないけど
- 88 :ナイコンさん:2005/09/17(土) 22:34:03 .net
- >>87
スマン惚けていた。忘れてくだされ
- 89 :72:2005/09/19(月) 01:09:59 .net
- そうか、最初に見つかるJが220だからと油断していた。
そのときのNは280ですでに9bit目に突入していたのだな。
2Bytes用に組むとなると、急にメンクサ度がアップだな
- 90 :ナイコンさん:2005/09/20(火) 18:27:02 .net
- まあ8bit機じゃねぇ
- 91 :ナイコンさん:2005/10/08(土) 23:10:35 .net
- 今日ようやっと時間ができたのでやってみた
【.メーカー.】 NEC
【..機種名....】 PC-6001
【...CPU...... 】 Z80Aコンパチ(μPD780C-1)
【クロック数】 4MHz
【.....メモリ.. 】 32KB
【.言語 】 N60-BASIC Page数 4
【プログラム変更点】
・100行目を削除した。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・170行目の「'」は「REM」にした。
・200行目の(N MOD I)は(N - INT(N/I) * I)に変更した。
▼スコア
【 220,284 】 12分16秒
【 1184,1210 】
同じCPU、クロックのX1にも遠く及ばない _| ̄|○
ライバル?MSXにも遙かに劣っている _| ̄|○
BASICが整数型じゃないし、MODもないからなぁ
- 92 :ナイコンさん:2005/10/08(土) 23:15:46 .net
- このままでは収まらないので、掟破りのBASIC Compilerを使ってみた
ニトロ噴射する気分だな〜
【.メーカー.】 NEC
【..機種名....】 PC-6001
【...CPU...... 】 Z80Aコンパチ(μPD780C-1)
【クロック数】 4MHz
【.....メモリ.. 】 32KB
【.言語 】 N60-BASIC+EXAS BASIC Compiler Page数 4
【プログラム変更点】
・100行目を削除した。
・110行目の「FOR J=2 TO 1000」は、 「FOR J=2 TO 10000」の間違いですた。
・170行目の「'」は「REM」にした。
・200行目の(N MOD I)は(N - INT(N/I) * I)に変更した。
・実行前にコンパイルした。
▼スコア
【 220,284 】 0分20秒
【 1184,1210 】 9分41秒
EXAS Compiler自体が整数型BASICのせいか、思っていたよりずっと早くなった。
PC-6001mkIIも引っ張り出そうと思ったけど、あまりに時間がかかるのでまた次回。
- 93 :ナイコンさん:2005/10/09(日) 00:04:11 .net
- >>91,92
GJ!!!
>>92
ベーシックコンパイラキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
- 94 :ナイコンさん:2005/10/11(火) 03:58:28 .net
- 【.メーカー.】シャープ
【..機種名....】PC-G850V
【...CPU...... 】Z80相当 CMOS品
【クロック数】4MHz?(←誰か教えてください)
【.....メモリ.. 】32KB
【.言語 】内蔵C言語/BASIC
【プログラム変更点】
・C言語は,#include分の除去と行番号を各ラインに付与。
・BASICは,190行目の"N/2"を"INT(N/2)"に変更。
【 220,284 】 16秒/ 196秒
【 1184,1210 】481秒/未計測
PC-G850V,PC-E650, FX-890PのBASICは,整数型変数がなく,実数で計算するので,
整数演算に不利。セミコンパイラー&整数演算のCは,やはり高速。
- 95 :ナイコンさん:2005/10/15(土) 17:34:36 .net
- BASICではありませんが、GBで挑戦してみました。
【.メーカー.】 任天堂
【..機種名....】 ゲームボーイ
【...CPU...... 】 Z80カスタム
【クロック数】 4MHz
【.....メモリ.. 】 32KB ROM
【.言語 】 機械語(アセンブラ)
【プログラム変更点】
110行目の「FOR J=2 TO 1000」を、 「FOR J=2 TO 10000」相当に修正。
▼スコア
【 220,284 】 4秒6
【 1184,1210 】 2分14秒8
ソースリストは以下にあります。
http://www.geocities.jp/submarine600/html/number.html
- 96 :ナイコンさん:2005/10/15(土) 19:30:30 .net
- >>95
マジZ。普通のPCでのマシン語じゃないところが
マニアックでいいでつな。
- 97 :ナイコンさん:2005/10/15(土) 21:08:44 .net
- Z80カスタム???
自分も68000でガンバルか
そういえばZ80しかアセンブラ経験ねえや。。。
- 98 :ナイコンさん:2005/10/15(土) 23:10:32 .net
- >>95
おつかれ
ゲームボーイってZ80のカスタムだったのね
知らんかった
- 99 :ナイコンさん:2005/10/16(日) 01:24:59 .net
- >>95に触発されてやってみた
レトロじゃないけど番外編ってことで怒らないでね
【.メーカー.】 任天堂
【..機種名....】 ゲームボーイアドバンス
【...CPU...... 】 ARM7TDMI
【クロック数】 16MHz
【.....メモリ.. 】 32KB+256KB
【.言語 】 C+アセンブリ
【プログラム変更点】
秒間約60フレームとしてVSYNC割り込みでフレーム数を計測
剰余はBIOS命令で代用し、コードをメモリに置いてフルに回した
▼スコア
【 220,284 】 0秒11 =7f
【 1184,1210 】 3秒5 =208f
【 2620,2924 】 17秒0 =1022f
【 5020,5564 】 62秒5 =3751f
【 6232,6368 】 96秒4 =5784f
- 100 :ナイコンさん:2005/10/16(日) 04:48:36 .net
- >>95, >>99に触発されて,WonderSwanで計算しました。
【.メーカー.】 バンダイ
【..機種名....】 WonderSwan
【...CPU...... 】80186バイナリ互換
【クロック数】 3.072MHz
【.....メモリ.. 】 16KB(本体)+256KB(WonderWitchカートリッジSRAM)+512KB(WonderWitchカートリッジROM)
【.言語 】 LSI-C86 for WonderWitch
【プログラム変更点】
WonderWitchのOS FreyaのシステムBIOS関数 sys_get_tick_countを用いて,
時間を計測。これも,>>99 と同じで,VSYNC(VBLANK)を使用した計測。
あとRTCで秒単位でも計測。
▼スコア
【 220,284 】 0秒27 = 20 tick
【 1184,1210 】 7秒36 = 552 tick
【 2620,2924 】 35秒95 = 2696 tick
【 5020,5564 】131秒73 = 9880 tick
【 6232,6368 】203秒07 =15230 tick
>>95,>>99と比較すると,周波数の割りに高速。
WonderWitchの資料によれば,1クロック/1バスサイクル,内部パイプライン化されていて,
オリジナルの80186より優秀そう。
総レス数 187
61 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★