2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

究極の8ビット機を妄想するスレ Part 8

1 :ナイコンさん:2019/07/05(金) 06:32:39.07 .net
できるだけ実在するデバイスのみで、究極の8ビット機を妄想してみよう。
ただし現状のPC界を見てもわかるとおり数値的なスペック追求のみでは無意味と知れ。
お前らの妄想力&創造力に期待する!

前スレ:
6. ttp://matsuri.5ch.net/test/read.cgi/i4004/1555991427/
5. ttp://matsuri.5ch.net/test/read.cgi/i4004/1544995324/
4. ttp://matsuri.5ch.net/test/read.cgi/i4004/1291090549/
3. ttp://toki.2ch.net/test/read.cgi/i4004/1221580785/
2. ttp://bubble6.2ch.net/test/read.cgi/i4004/1161303062/
1. ttp://bubble4.2ch.net/test/read.cgi/i4004/1009359454/l50
究極の8ビット機を妄想するスレ Part 7
https://matsuri.5ch.net/test/read.cgi/i4004/1560227682/

89 :ナイコンさん:2019/07/07(日) 07:10:50.87 .net
アセンブラからと違ってBASICで書かれたソフトをCへの移植するって要件が楽だよな。

90 :ナイコンさん:2019/07/07(日) 07:29:49.50 .net
1986年ならアーケード機にもC開発が出たから、1985年くらいから本格的にCが流行ってたのかな
ビジネスアプリもBASICからCに移植とかやってたし

91 :ナイコンさん:2019/07/07(日) 07:31:56.96 .net
業務系の大半はN88(86)BASIC→VBだよw

92 :ナイコンさん:2019/07/07(日) 07:51:13.82 .net
>>89
アセンブラからの方が楽だろ
文字列とか10進とかライブラリ作るのが面倒くさい

93 :ナイコンさん:2019/07/07(日) 08:05:11.57 .net
要件の意味が分かってもらえないなんて

94 :ナイコンさん:2019/07/07(日) 08:54:23.18 .net
BASICからC言語の移植でscanf系関数もprintf系関数も使わないとか酷いな。
そんな仕事はけられておしまいだわ。

95 :ナイコンさん:2019/07/07(日) 08:59:02.77 .net
strlcpy

96 :ナイコンさん:2019/07/07(日) 10:22:51.26 .net
>>89
当たり前だがケースバイケース
GOTOとかグローバル変数使いまくりのスパゲティBASICコードより、ちゃんとモジュール化されてるアセンブラの方が楽

97 :ナイコンさん:2019/07/07(日) 13:19:53.85 .net
Cにもgotoはあるしグローバル変数もありますよ?

98 :ナイコンさん:2019/07/07(日) 13:35:47.05 .net
gotoなんか使ったらバチが当たるよ

99 :ナイコンさん:2019/07/07(日) 13:46:22.63 .net
綺麗にするのは後回しで、取り敢えず移植しなきゃならない場合も有るし
そういうBASICの汚さまでも受け入れられるのがCの良い所でも有る

100 :ナイコンさん:2019/07/07(日) 14:49:07.04 .net
>>97
でもGC付きの文字列はないよね
そんなのをグローバル変数でぐちゃぐちゃ使われてたら…

101 :ナイコンさん:2019/07/07(日) 14:50:32.26 .net
BASICにGCなんてないよ

102 :ナイコンさん:2019/07/07(日) 15:35:36.94 .net
>>101
素人は黙ってて

103 :ナイコンさん:2019/07/07(日) 15:49:38.89 .net
玄人登場w

104 :ナイコンさん:2019/07/07(日) 16:23:39.51 .net
>>103
人を煽るならもう少し知恵をつけてからにしましょうw

N-BASICには文字列を大量に操作するとガベージコレクションというメモリを最適化する動作が起こるんです。
http://www.yoriki.jp/smalltalk/academy02.html
まあ実装はかなり改善されてるけどね

105 :ナイコンさん:2019/07/07(日) 16:37:50.09 .net
BASICのプロワロタ

106 :ナイコンさん:2019/07/07(日) 16:42:29.23 .net
N-BASICだってよw

107 :ナイコンさん:2019/07/07(日) 16:47:08.61 .net
>>104
N-BASICw

108 :ナイコンさん:2019/07/07(日) 16:48:05.27 .net
>>83
当時っていつの時代のどの機種向けのことだ?
それによって全然違うし、さらに同時代同時期でもいろいろある。
大学のミニコンにエミュレータ構築してる奴もいれば、
そのままセルフ開発もいれば、
Apple2ならFD共通化できるからZ80カードにCP/Mでのクロスもいれば、
IBM-PC互換機でてからはMS-DOSクロスもいれば、
ゲーム機なら任天堂やハドソンが提供してた

何度も同じこと聞くなよ。

109 :ナイコンさん:2019/07/07(日) 17:02:08.90 .net
>>105-107
今のBasicにGCがなくなったと思ってるのか?
基本は変わらんよ

110 :ナイコンさん:2019/07/07(日) 17:07:11.09 .net
BASIC言語の問題だと思ってるあたり、痛い子ちゃんだなあ

111 :ナイコンさん:2019/07/07(日) 17:34:56.80 .net
自動的に解放とかいうバカ用の行儀の悪い言語だと今も悩まされる

112 :ナイコンさん:2019/07/07(日) 19:48:20.16 .net
>>110
問題を理解できない痛い子に言われてもなぁw
そもそもBasicの問題じゃなくてGCの問題だし

113 :ナイコンさん:2019/07/07(日) 20:12:45.43 .net
>>112
を!自分がバカだということに気づいて
主張を変えてきやがったwww

114 :ナイコンさん:2019/07/07(日) 20:51:19.79 .net
???
BasicにはGCあるけどCにはないから移植が面倒って話なんだが>>113には難しいのかな?w

115 :ナイコンさん:2019/07/07(日) 21:04:52.53 .net
>>114
を!更に変なことを言いだしたぞw
なんでGCが必要なんだ?

116 :ナイコンさん:2019/07/07(日) 21:22:49.01 .net
文字列の処理考えたらわかる
たいていの処理系で A$ = B$ ってやっても実体のコピーはせずに文字列を共有する
A$, B$が必要なくなるのはてんでバラバラなのでこの手の処理をするにはCGを実装するのが一般的
違うと言うなら違う実装を提示してみ

117 :ナイコンさん:2019/07/07(日) 22:51:55.64 .net
文字列の最大サイズを文字変数の数確保

118 :ナイコンさん:2019/07/07(日) 23:55:21.59 .net
「8ビットではC言語は使われてなかった。イイネ?」

119 :ナイコンさん:2019/07/08(月) 00:02:40.15 .net
シミュレーションゲーム系が大変になるな

120 :ナイコンさん:2019/07/08(月) 00:05:05.70 .net
これを貼れと

8ビットCPUでC言語? ないないありえないっしょ!
http://matsuri.5ch.net/test/read.cgi/i4004/1532613479/

121 :ナイコンさん:2019/07/08(月) 00:15:10.96 .net
CG

122 :ナイコンさん:2019/07/08(月) 00:17:24.24 .net
8ビットでCGって、3Dモデルのワイヤーフレーム表示はともかく、レイトレやったら死ねそうだなぁ。
昔々、昭和のころにX1ターボでン百時間とかやった人が居たとかどっかで聞いたが・・・

123 :ナイコンさん:2019/07/08(月) 00:48:51.49 .net
演算に関してはFPUにお任せで良いでしょ

124 :ナイコンさん:2019/07/08(月) 01:26:00.57 .net
BASICからCに移植するのにGCを独自実装しなきゃならんとか、バカか?

バカなんだろうな。

125 :ナイコンさん:2019/07/08(月) 01:54:28.96 .net
CGを実装するのが一般的ドヤァ

CGねぇ

126 :ナイコンさん:2019/07/08(月) 02:04:29.39 .net
違うと言うなら違う実装を提示してみドヤァ

勝利宣言はまだですか?

127 :ナイコンさん:2019/07/08(月) 02:40:22.44 .net
ちゃんと処理すればGCいらないような気がするけど
なんか不都合あるかしら

128 :ナイコンさん:2019/07/08(月) 04:10:33.60 .net
無しの案書いたけど反論こないねBASICって不要な変数わかりにくいよなCGするにしても
つうかポインタ渡しだっけ$A$B個別に書き換えらたような思い出別な処理系と混同してん
のかな

129 :ナイコンさん:2019/07/08(月) 04:59:56.09 .net
>>128
なしの案って>>117みたいな荒唐無稽な奴とか>>127みたいな具体性のかけらもない奴のこと?
そりゃアホすぎて反論も来ないだろw

130 :ナイコンさん:2019/07/08(月) 05:07:40.47 .net
文字列の連結を'+'だけで済ますなんて邪道

131 :ナイコンさん:2019/07/08(月) 05:22:35.71 .net
>>122
CQ出版が1983年に発行した3DCG本ではBASICで記述したRay-Tracingプログラムが公開されていて映画『トロン』のライト・サイクルもどきがあちこちのSHOPでDEMOっていたな。
本ではCP/M+BASCOMで実行ということだったが手元のPCのBASICインタプリタを使った人も多かったよ。

132 :ナイコンさん:2019/07/08(月) 05:42:56.11 .net
>>88
マニュアルには
・LSI-C(Z80系)
・イントロール・クロスC(6809系)
・MS-C,PLINK86(8086系,V30系)
と書いてある。

133 :ナイコンさん:2019/07/08(月) 06:33:55.33 .net
移植性重視でcではなく、
単に昔のBASICではグローバル変数だけだから大規模なプログラムは破綻するからだろう。

134 :ナイコンさん:2019/07/08(月) 06:41:50.77 .net
当時はCが流行ったって言うよりも、
C以外が流行らなかったって、消去法でCが使われてたような

135 :ナイコンさん:2019/07/08(月) 06:51:39.48 .net
なんでBASICで書いたプログラムをCに移植するのに、CにGCが必要になるんだ?
文字列用のエリアをヒープに確保するならmalloc/free使う「C言語のお作法」に従う必要はあってもBASICのGCを模倣する必要はないじゃん。

136 :ナイコンさん:2019/07/08(月) 07:25:32.39 .net
日本ではROM BASICが強くpascalが流行らなかっただけで、米国じゃBASICとCの間にpascalが流行った時期があった。

GCをCにもと言ってる人は、余程出来ない人に学んだんだろうな。

137 :ナイコンさん:2019/07/08(月) 07:30:22.32 .net
>>135
文字列が必要なくなるのがてんでバラバラだからいつfreeするのかわからない人みたいだよ

138 :ナイコンさん:2019/07/08(月) 08:13:54.10 .net
>>135-137
毎回文字列をコピーしまくるタコ設計でいいならそれでいいんじゃね
移植するなら多分マシン性能も上がってるだろうし

139 :ナイコンさん:2019/07/08(月) 08:19:13.54 .net
>>91
80年代は業務系の大半はオフコンでCOBOLだろ

140 :ナイコンさん:2019/07/08(月) 08:19:51.12 .net
>>138
C言語が判ってないのね、君は。
だから「GC必要なんじゃドヤァ!」ってバカなこといってるんだね。
かわいそうに・・・

141 :ナイコンさん:2019/07/08(月) 08:20:05.62 .net
BASICで変数が不要と分かるタイミングっていつ?

142 :ナイコンさん:2019/07/08(月) 08:22:46.75 .net
文字列が毎回コピーとか言ってる時点でJavaプログラマなのかな
たしかにJavaだとStringBuilder使わないと加工するたびに毎回コピーされる
C言語の文字列はただの文字型の配列だからな

143 :ナイコンさん:2019/07/08(月) 08:27:55.22 .net
>>141

A$="1234"
A$=null

とかできるBASICならnull代入時になるんじゃね?
N-BASICはよく知らんけどローカル変数やnullの概念がないBASICは一度宣言(確保)した変数はCLEARとかNEWとかERASEとかDIMとかで開放しないとずっと握りっぱ。

144 :ナイコンさん:2019/07/08(月) 08:31:25.79 .net
ROM BASICで動くプログラムならそのままDiskBASICコンパイラで速く動かせられるってなってりゃ、
あれほどROM BASICだけしか無いって状況になってなかったろうに
結局は移植が必要で、どうせ移植するならCでも手間は大差無い
なら高速化できる余地のあるCにしてしまえ、だったような

145 :ナイコンさん:2019/07/08(月) 08:31:47.61 .net
C言語の場合、文字列のコピーも連結も関数使って自分でやるんだよな
他の言語のように全自動でやってくれない

146 :ナイコンさん:2019/07/08(月) 08:34:16.24 .net
当然、C言語の場合
新しい文字列が必要になったら文字列の領域確保も自分でやらないといけない

147 :ナイコンさん:2019/07/08(月) 08:37:08.02 .net
C言語の場合、文字列の領域確保はグローバル変数でもいいし
関数内だけでしか使わなければローカル変数でもいいし
途中でメモリを解放したければmallocで動的に確保してもいい

いずれにしても自分で領域を確保しないといけない
全自動ではやってくれない

148 :ナイコンさん:2019/07/08(月) 08:51:23.73 .net
言われてみれば、8ビット時代のBASICのGCって何を対象にしてるんだろ?
てっきり、文字列変数を切り貼りする時の内部的なテンポラリ領域を掃除するんだろと思ってたけど、厳密には考えたこともなかったな。
ローカル変数がないんだから、変数が要らなくなるタイミングなんてない気がする

149 :ナイコンさん:2019/07/08(月) 08:59:32.79 .net
>>129
ないことの証明はできない、悪魔のなんたらってやつじゃん?
どうしてもGC必要な例だしてよw

150 :ナイコンさん:2019/07/08(月) 09:03:48.99 .net
A$="12345”
B$="ABCDE"
ってやったあとに
A$="AB"
ってやったりすると”CDE"があった部分が開くでしょ?
そこにB$をずらしてくる。
というのがBASICのGCがやることのひとつ。
GCやって後ろに空きがなくなったところで
A$=A$+"XYZ"ってやると新しい領域にA$+"XYZ"の結果入れて、それまでA$が占めてた空間が開くので(ry

まぁBASICも文字列操作すると裏ではコピーしまくりなのよね。

151 :150:2019/07/08(月) 09:05:54.09 .net
”CDE"の場所があく、じゃねーや、”345”の場所が開く、だw
まぁ、言いたいのはそこじゃなくて「文字列の長さ変わったら」だから勘弁してクレメンス。

152 :ナイコンさん:2019/07/08(月) 09:13:20.44 .net
>>150
なるほど
デフラグって感じね

153 :ナイコンさん:2019/07/08(月) 09:16:55.21 .net
C言語の場合、そういう操作は全部手動でやる
文字列のコピーもstrcpyなどを使って手動でやる
新しい文字列領域が必要になったらmallocで領域確保していらなくなったらfreeで解放

154 :ナイコンさん:2019/07/08(月) 09:25:14.52 .net
malloc/freeもどうしようもないゴミができてくるよね

BASICのやつ、文字列ヒープコンパクションだったのね

155 :ナイコンさん:2019/07/08(月) 09:29:58.46 .net
>>149
> どうしてもGC必要
そんなこと言ってるの君だけじゃね?

156 :ナイコンさん:2019/07/08(月) 09:34:22.62 .net
>>155
はい、では「GC必要ない」で良いですか?

157 :ナイコンさん:2019/07/08(月) 09:50:43.85 .net
「どうしてもGCが必要」とは言ってない
 ↓
「CGは必要ない」

って考える人はプログラマーに向いてないんだろうな…

158 :ナイコンさん:2019/07/08(月) 10:06:41.69 .net
BASICからCへの移植は、GCは
 ・いる
 ・いらない
はっきりしろよ どっちなんだよw
2択で答えてちょ

159 :ナイコンさん:2019/07/08(月) 10:10:18.55 .net
>>158
C言語の場合、全部手動でやるのでGCが入り込む余地はない

160 :ナイコンさん:2019/07/08(月) 10:11:06.05 .net
>>140
実装の話と言うことが理解できないの?

161 :ナイコンさん:2019/07/08(月) 10:12:04.91 .net
>>158
実装によって異なる
どっちでもできるだろ

162 :ナイコンさん:2019/07/08(月) 10:14:16.51 .net
GCが必要なんて発想はJavaや.NETやってる人の発想
C言語ではメモリ確保、解放は全部自力でやる

163 :ナイコンさん:2019/07/08(月) 10:24:25.07 .net
GCのないC言語で現実に大規模なアプリが作られてるのにね

164 :ナイコンさん:2019/07/08(月) 10:24:54.18 .net
なんだこの極端バカはww
GCに親でも殺されたのか?

165 :ナイコンさん:2019/07/08(月) 10:28:23.28 .net
GCに頼らないとプログラム組めない人にC言語は扱えない

166 :ナイコンさん:2019/07/08(月) 11:09:48.41 .net
GCなんて害悪以外の何者でもない

167 :ナイコンさん:2019/07/08(月) 11:26:34.50 .net
ここ住人の大半は、至極まともな人なので安心したw!

168 :ナイコンさん:2019/07/08(月) 11:39:01.34 .net
>>157
どうしても必要なもの以外は不要
要不要の判断が付かないから糞みたいなプログラムになるんだよ

169 :ナイコンさん:2019/07/08(月) 11:48:43.02 .net
いつからBASICってJavaVMのようなGCがある前提になったの?

170 :ナイコンさん:2019/07/08(月) 12:03:00.48 .net
ないから必要なら作るって話なんだけどGCって言葉に異常に反応してる輩が喚いてるだけ

171 :ナイコンさん:2019/07/08(月) 12:16:59.59 .net
Goにもgoto無かったっけ

172 :ナイコンさん:2019/07/08(月) 12:17:54.89 .net
>>136
WizardryもPascalで開発やな

173 :ナイコンさん:2019/07/08(月) 13:08:20.21 .net
>>132
1986年にLSI-CとIntrol-Cとならセルフコンパイルか
多機種展開で開発するなら98でのクロスコンパイルしたい所だろうが、中々クロス開発環境もまだって頃だったか

174 :ナイコンさん:2019/07/08(月) 13:12:09.41 .net
>>136
ROM BASICが強いと言うより当時はFDDとかもまだ高かったから個人で使う人が限られてただけ
当時でも大学とかなら普通に使われてたし、その後の話になるけど環境揃い出したらTurbo Pascal使ってたやつもそこそこいる

> GCをCにもと言ってる人は、余程出来ない人に学んだんだろうな。
実装の一例上げただけでこの反応
なんかトラウマでもあるのかよw

175 :ナイコンさん:2019/07/08(月) 13:17:15.34 .net
A$ B$ は別個の変数だよねポインタ渡しとか言ってるけど

176 :ナイコンさん:2019/07/08(月) 13:34:46.68 .net
まめにフリーエリアのサイズを照会すればいいんだよ

177 :ナイコンさん:2019/07/08(月) 14:53:53.69 .net
>>139
それはは汎用系とかお金扱うなら勘定系って部類

178 :ナイコンさん:2019/07/08(月) 15:04:07.96 .net
シミュレーションゲームは高級言語でも十分いけたんだろうな
PC9801版の大戦略はBASICで書かれたとかな

179 :ナイコンさん:2019/07/08(月) 15:06:42.08 .net
486SX 25MHzのPC/AT互換機でもSuper大戦略はちょっ速やった

180 :ナイコンさん:2019/07/08(月) 15:08:43.40 .net
BASICプログラムをCに移植するとき、言語仕様にないものを新たに作るか、 Cの言語仕様に沿って改変するか。
BASICプログラムをサブルーチンごとに機能を分析してチームで移植したんだろうね。
そんなことしてるから日本のソフトウェアは大きく立ち遅れたんだけど。

181 :ナイコンさん:2019/07/08(月) 15:23:13.55 .net
>>177
だって大企業はメインフレームや中型コンピュータ使ってた時代だもの
パソコンなんてまともな通信手段もなかったし
業務に使うといっても中小企業が使ってた会計ソフトくらいじゃないの?
後は工作機械のパソコン制御とかか

182 :ナイコンさん:2019/07/08(月) 15:26:40.70 .net
一般人に身近なところでは図書館のシステムとかも昔はパソコンではなくてオフコンだったよな

183 :ナイコンさん:2019/07/08(月) 15:45:15.24 .net
3270とか5250とかで動かしてる奴だろ

184 :ナイコンさん:2019/07/08(月) 15:46:39.96 .net
学生時代にアルバイトしてた会社に9450があったなw

185 :ナイコンさん:2019/07/08(月) 17:53:47.34 .net
ガベージコレクションが自動的に発動してしまうのはもちろん理解はできるが、
プログラマが任意のタイミングで発動できるようにしておいてくれ(ガベコレ発動コマンドを用意しておいてくれ)
…とは当時思ったな。特に古いBASIC処理系。
まあアセンブリやCを使うようになってからは、どうでも良くなった(興味すら無くなった)が。

186 :ナイコンさん:2019/07/08(月) 18:29:45.42 .net
mallocだって断片化したものをどうするかなんてlibの実装依存だろ

187 :ナイコンさん:2019/07/08(月) 18:44:09.82 .net
書式 FRE(機能)
〈機能〉が0または2のときは. FREは,ストリング領域の整理のための、"ちり集め"処理を必ず行いますので,関数が値を返すまでに時間がかかることがあります.

188 :ナイコンさん:2019/07/08(月) 19:11:09.42 .net
A$=B$ で実体が同じとなるBASIC実装って
具体的に何のBASIC?

189 :ナイコンさん:2019/07/08(月) 19:45:02.88 .net
copy on write ってことかしら
8bitのBASICの実装まで解析してる人稀だろね

総レス数 1001
229 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200