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

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

某8ビット機と8ビット機のスレッド

1 :774ワット発電中さん:2021/11/17(水) 17:25:53.82 ID:AR6EmFJC2
某8〜「初代」「2」「2+」「tR」

8ビット機〜PC-8001・PC-8801シリーズ・PC-6001シリーズ・X1シリーズ・FM-7/77シリーズ

について

2 :774ワット発電中さん:2022/03/19(土) 18:19:46.16 ID:wRqBSOwCZ
某8のテープ。

ファイルを見つけたときの "Found:GAME" 表示は、ダイレクトモード限定。
CLOAD・CLOAD?・LOAD"CAS:"・BLOAD"CAS:" で表示、がほとんどでは?
プログラム上でBLOAD"CAS:"を実行した場合、ファイルを見つけても、一切表示されない。

SAVE"CAS:"/LOAD"CAS:"は、アスキー形式でテープのBASICプログラムに読み書きする。

OPEN"CAS:(ファイル名)" FOR OUTPUT[/INPUT] AS #1
〜アスキー形式のデータだが、行番号付きのPRINT#命令で書き込むと、
LOAD"CAS:"コマンドで読み込み可能、
マシン語データなどのDATA命令を書き出すときに使える、と思う。

OPEN"CAS:(ファイル名)"は、ほとんどの場合、プログラム上で実行する。
ダイレクトモードで実行は、デバッグや実験に限られる、と思う。

で、結論を書くと、ダイレクトモードで
OPEN "CAS:(ファイル名)" FOR INPUT AS #1
を実行すると、
"Found:******"と表示される。
OPEN命令で"Found:******"は、珍しいと感じたので。

3 :774ワット発電中さん:2022/03/19(土) 18:25:37.89 ID:wRqBSOwCZ
「Web某8」の「2+」モードで実験。
既存のテープイメージは不要。ない場合は新たに作られる。
残す必要がない場合、黄色くなったファイルを放棄すればいい。

==================================================

OPEN"CAS:TEST"FOROUTPUTAS#1
Ok

FORI=1TO100:?#1,USING"###";I:NEXT
Ok
CLOSE
Ok
【重要:ここでテープイメージを巻き戻すこと、忘れるとDevice I/O errorに!】

OPEN"CAS:TEST"FORINPUTAS#1
Found:TEST
Ok

DIMA(100):FORI=1TO100:INPUT#1,A(I):NEXT
Ok
CLOSE
Ok

?A(25);A(100);A(3)
 25  100  3
Ok

==================================================

……アスキー形式だから、「2」以降のメモリディスクも同じ気がするけど、
これも実験してみるか。

4 :「2」以降のメモリディスクで同じ実験:2022/03/19(土) 18:42:13.62 ID:wRqBSOwCZ
==================================================
_MEMINI
32000 bytes allocated
Ok

OPEN"MEM:TEST"FOROUTPUTAS#1
Ok

FORI=1TO100:?#1,I:NEXT
Ok
CLOSE
Ok

_MFILES
TEST
31232 bytes free
Ok

OPEN"MEM:TEST"FORINPUTAS#1
Ok

DIMA(100):FORI=1TO100:INPUT#1,A(I):NEXT:
CLOSE
Ok

?A(1);A(3);A(10);A(55);A(100)
 1  3  10  55  100
Ok
==================================================

"Found:******"はテープのみ、メモリディスクは表示されない。
ディスクBASICのFILESコマンドに相当する、CALL MFILESコマンドでファイルを確認。

OPEN "MEM:(ファイル名)" FOR INPUT AS#1
〜メモリディスクにファイルがある場合はエラーなし・"Ok"と表示、
ファイルがない・ファイル名を間違えた場合は File not foundエラー。


ディスクなしの「2」ユーザーは、メモリディスクが使える場合は、
メモリディスクを使ったほうがいいと思う。

……私は元「初代」ユーザーで、後に「2+」に買い替えたから、
メモリディスクを使用したことはないけど。

※メモリディスクは、東芝のRAM64KBの「初代」で初登場、「2」以降に正式採用。

「tR」のディスクBASIC ver2.0では、RAMディスクが使える
〜便利だけど、ディスクBASICがない場合・プログラム上でディスクBASICを切断した場合は使えない。

5 :「ログイン1987年○月号」の某8ゲームをカートリッジ化、03-23版:2022/03/24(木) 02:13:01.60 ID:B2WqoS+JU
以前、2ch.scに
「ログイン1987年○月号」の某8ゲームをカートリッジ化
の件について触れた。

このゲームは、テープ版がオリジナル(DiskBASIC切り離しの必要はないが…ギリギリまで使っている)で、
ディスク化・カートリッジ化のいずれも可能。


本来ならば、「初代」用だが、32KBのRAMが必要。
カートリッジ化した場合は、16KBのRAMで動作可能。


このゲームに触れる……程度は、問題ないと思う。
しかし、某アーカイブに「ログイン1987年○月号」をアップロードする、
このゲームの実行ファイルを配布は、極めて危険。

作者の吉田さんではなく、
某8残存ユーザーの一人に通報され、削除される、と思う。

……吉田さんは、後にアスキーの某8版シューティングゲームの作者になり、
「2」用の「吉田工務店」、「2+」以降用の「吉田建設」「吉田コンツェルン」
を作った。
この時点で、1987年に作ったこのゲームのソースリストは破棄したので
アスキーの「某8マガジン」への再掲載・「某8マガジン」のディスクマガジンへ収録は不可能だ、
と発言している。吉田さん本人は、このゲームに執着していない。

6 :「ログイン1987年○月号」の某8ゲームをカートリッジ化、03-23版:2022/03/24(木) 02:37:41.75 ID:B2WqoS+JU
リストは、PC-8001用BASICソフト/マシン語ソフト入力支援ツールの
「DumpListEditor」形式で
http://ai.2ch.sc/test/read.cgi/denki/1582125678/l50
に貼ったが……

カートリッジ版の起動ルーチンに致命的な誤りがあったので、修正。
致命的な誤りといっても、
「blue某8」「Web某8」の「tR」モードで第2カートリッジに差しても
一応正常するので、バグの発見が遅れた。

実機「tR」のFS-A1ST・FS-A1GTと違い、エミュレータの「tR」の第2カートリッジは
拡張スロット、#2−0(82h)になっている。「tR」は、様々な拡張ロムが必要だから。

本来ならば、市販ゲームカートリッジソフトは、
本体基本スロットの#1(01h)・基本スロットの#2(02h)に差すべき。

実機ではスロットが不足した場合にNEOS製や海外製の拡張ユニットを差す、
エミュレータでは「blue某8」「Web某8」の第2カートリッジと同じ設定をする、
……これで、優先順位が正しければ、コナミのカートリッジ2本差しの場合、
1本のみまたは2本両方を拡張ユニットに差しても正常動作する。


カートリッジやスロットの調査が必要なのは、コナミのゲーム以外では、以下の通り。

1.FM音源の有無をチェックする場合。ある場所に"OPLL"の文字列が書かれている。

2.ディスクなしのシステムで、ページ1RAM(拡張CALL命令ルーチン)を転送するスロットを探す場合。
 サンヨーのWAVY70FD/FD2同梱の「べーしっ君」は、ページ2のROMに内蔵されているため、
 "CALL BC"命令でページ1RAMへ転送する・ページ1RAMのCALL命令を有効化・ページ1RAMのCALL命令アドレスを設定……が必要。
 ディスクがある場合はページ1RAMをF342hから読み取るが、
 ディスクがない場合(SHIFTキー立ち上げ)は、全スロットのページ1に値を書き込み、
 ページ1のRAMを調査している。

3.32KBのロムカートリッジゲーム。ページ1とページ2に跨る。
 ページ1で自分自身のスロットを調べ、
 ページ2をページ1と同じスロットに切り替える必要がある。
 これは、「ログイン1987年○月号」など、テープゲームをカートリッジ化した場合も同様。
 ページ2をページ1と同じスロットにする、これも必要だが、
 ページ1に「ページ3RAMへ転送すべき内容」があるので、転送する。
 ページ2はロムのままなので、RAM16KBのシステムでも動く(本来は32KB以上が必要だけど)。

7 :「ログイン1987年○月号」の某8ゲームをロム化、転送部分のソース(1):2022/03/24(木) 03:16:53.79 ID:B2WqoS+JU
4020 CD3801   CALL 00138H         ;ページ1の基本スロット番号を調べる
4023 0F       RRCA                ;ちなみに、ページ1の基本スロット番号は、****nn**
4024 0F       RRCA                ;RRCA×2で、右にシフトする必要がある
4025 E603     AND 003H            ;AND 003Hで、000000nn ……基本スロット番号が確定する
4027 4F       LD C,A              ;スロット番号をCレジスタに保存する
4028 0600     LD B,000H           ;ADD HL,BC命令の前に、Bレジスタを0にする
402A 21C1FC   LD HL,0FCC1H        ;スロットの拡張情報は、(FCC1h+基本スロット番号)にある
402D 09       ADD HL,BC           ;ADD HL,BCで、スロット拡張情報がある(FCCx)を求める
402E 4F       LD C,A              ;スロット番号をCレジスタに保存する ※不要な気もするが…
402F 7E       LD A,(HL)           ;(FCCxh)をAレジスタへ、拡張ありの場合は1*******b〜Bit7がオン
4030 E680     AND 80H             ;Bit7以外を0にする (「2」バージョンアップアダプタは、FCC1hが10000000以外の可能性がある)
4032 B1       OR C                ;Bit7の拡張情報とBit0・1の基本スロットを合算する
4033 4F       LC C,A              ;スロット番号をCレジスタに保存する ※拡張スロットの場合、後で使う

4034 F23F40   JP P,403FH          ;Bit7が0の場合=基本スロットの場合、ここでスロットが確定したので、拡張スロットルーチンの実行を飛ばす
※これが最も重要な命令だが、テクハンのサンプルプログラムでは、これを忘れている
※サンヨーのWAVY70FDデモディスクを調べたところ、ADD A,A / CP NC,EXIT 〜この方法もある

4037 23       INC HL              ;INC HLが4つ〜#0−nの場合、(FCC5h)に拡張スロットの情報がある
4038 23       INC HL              ;(FCC5h)が#0−n、(FCC8h)が#3−n
4039 23       INC HL              ;今回は、拡張スロットのページ1の情報が必要
403A 23       INC HL              ;(FCC5h)などの ****nn** が必要
403B 7E       LD A,(HL)           ;ここでAレジスタに代入する
403C E60C     AND 00CH            ;AND 00001100b で、ページ1の情報のみを抽出、Bit2・3のためシフトは不要
403E B1       OR C                ;拡張スロットのページ1を合算、ここで拡張スロット番号が確定する

【Aレジスタに確定したスロット番号が入る、基本スロットの場合は JP P,403FH でここへ飛ぶ】
403F 2680     LD H,80H            ;
4041 CD2400   CALL 00024H         ;当カートリッジファイルは32KB=32768バイト

8 :「ログイン1987年○月号」の某8ゲームをロム化、転送部分のソース(2):2022/03/24(木) 03:18:26.82 ID:B2WqoS+JU
【以降はゲームソフト独自のルーチン、「ログイン1987年○月号」のゲームについて】

4044 F3       DI                  ;割込禁止だが……後で割込許可にしている
4045 210060   LD HL,06000H        ;ページ1の6000H〜 から8192バイトを
4048 1100C0   LD DE,0C000H        ;ページ3のC000H へ転送する
404B 01501C   LD BC,01C50H        ;
404E EDB0     LDIR                ;
4050 C335DC   JP 0DC35H           ;実行直前の設定ルーチンへジャンプする


;以下は、ページ3へ転送後のアドレス、ゲーム本体実行の直前設定

DC35 F3       DI                  ;割込禁止にしているが……
DC36 3100F3   LD SP,0F300H        ;スタックをF300hへ変更
DC39 219AFD   LD HL,0FD9AH        ;
DC3C 119BFD   LD DE,0FD9BH        ;ワークエリアのフック全域を
DC3F 012F02   LD BC,0022FH        ;"RET" = C9H で埋める
DC42 36C9     LD (HL),0C9H        ;カートリッジよりも先にディスクルーチンがある
DC44 EDB0     LDIR                ;機種があるので、対策が必要
DC46 FB       EI                  ;ここで割込許可

【ここでゲーム本体の実行に入ります】
DC47 C30081   JP 08100H           ;ゲーム本体は8100Hから(ページ2はカートリッジ)

9 :最後に:2022/03/24(木) 03:38:20.01 ID:B2WqoS+JU
某8の残存ユーザーについて。
BASICすら分からない・BASICしか知らないレベルのユーザーは問題ないが……。
このレベルの者は、ヤフオク!やメルカリに多い、と思う。


マシン語が分かるレベルの連中は、危険な残存ユーザーの巣窟になった、と思う。


「ログイン1987年○月号」掲載のゲームは、市販ソフトではなく、
アマチュアの投稿作品が雑誌に掲載されたもの。

作者の吉田さん本人は、1991年時点で
「当作品のソースリストは既に破棄した、当作品に執着はない」
と発言しているが……。


当作品の実行ファイルをアップロードしたり、
「ログイン1987年○月号」の雑誌を某アーカイブにアップロードした場合、

この作品に執着している残存某8ユーザーから攻撃される、と思ってよい。


「ログイン1987年○月号」を入手し、この作品を入力する方へ。

PC-8001・PC-8001mkIIのBASICゲームを入力している方は、
某8のBASICゲーム〜「ベーマガ」・アスキー「某8マガジン」・アスキー「ログイン」
の作品も数多く入力している。

この作品には、1バイトの誤植があるため、
ダンプリスト通りに打ち込むと、「文字が正確に表示されない」バグがある。
後の「ログイン○月号」でも、この件の訂正記事はない。

実際にこの作品を入力した彼が、

「1バイトの誤植があるので、ここを訂正してください。
そうすると、画面表示が正常になります。」

とアドバイスしているので、その言葉に従ってください。

10 :ログイン「1987年○月号」掲載ゲームを入力した方、彼の言葉を転載:2022/03/24(木) 03:58:56.67 ID:B2WqoS+JU
ログイン「1987年○月号」掲載の
某8ゲームを入力された方の文章を転載します。


> ’87/** LOGiN ***********
> 某8「初代」用 バグ有り一応OK

> 一部画面がおかしいところがありますがゲームには支障は無さそうです。
> 掲載誌にはバグの報告は無いようですが修正してみました。
> アドレス09E11Hの内容02BHを023Hに変更
> これで正しく表示されるようになります。


私の調査では、こうなります。
ダンプリストは 8500H〜 ですが、
実行直前にプログラム本体を 8100H〜 へ転送しています。

実行アドレスは、以下の通りです。

9A10 46       LD B,(HL)           ;
9A11 23       INC HL              ;【バグ】2BH→23Hへ訂正、掲載リストは"DEC HL"
9A12 5E       LD E,(HL)           ;
9A13 23       INC HL              ;掲載リストは9E1xH〜
9A14 56       LD D,(HL)           ;
9A15 23       INC HL              ;しかし、ゲーム本体の実行直前にルーチン全体を
9A16 7E       LD A,(HL)           ;「0400H=1024バイト上位へ転送している」
9A17 23       INC HL              ;

11 :ブロック転送〜「Z80マシン語秘伝の書」より:2022/03/29(火) 05:32:02.91 ID:pw7m9UaV5
ブロック転送するアドレスが重なる場合、
LDIRとLDDRの使い分けが必要になります。


【Q】
データをブロック転送する際に、時々データがメチャクチャになってしまうことが
あるのです。そのブロック転送は、5000H〜5FFFH番地の内容を5100H番地へ転送する
という簡単なものです。

---------------
LD HL,5000H
LD DE,5100H
LD BC,1000H
LDIR
---------------


【A】
 このブロック転送は、一見するとなんのバグもないように見えます。特に、
バグがないと思ってしまうと、長いこと悩むことになるほどです。

 しかし、ブロック転送において、転送するデータのアドレスとその転送先が
重なっている場合は、LDIR命令とLDDR命令をキチンと使い分けなければなりません。

今回の場合も、このままでは5000H番地の内容が5100H番地に転送された時点で、
まだ転送し終えていない5100H番地の内容が消えてしまっているのです。

 では、どのように2つのブロック転送命令を使い分けるのか、確認してみましょう。

・LDIR命令(アドレスの小さいほうから順次転送していく)
転送前 (アドレス小) □□□□□→■■■■□□□ (アドレス大)
転送後 (アドレス小) □□□□→■■■■□□□□ (アドレス大)

・LDDR命令(アドレスの大きいほうから順次転送していく)
転送前 (アドレス小) □□□■■■■←□□□□□ (アドレス大)
転送後 (アドレス小) □□□□■■■■←□□□□ (アドレス大)

 転送先がオリジナルのデータと重ならない場合、一般にはLDIR命令が使用されます。
それは、いちいち転送データのエンドアドレスを計算しなくても済むからです。
そのせいでしょうか、ついついLDDR命令というのは忘れられがちな存在です。

 しかし、天災とバグは忘れたころにやってくる。
それを忘れないでください。

---------------
LD HL,5FFFH
LD DE,60FFH
LD BC,1000H
LDDR
---------------

12 :某8〜中間言語変換プログラム:2022/04/27(水) 17:41:56.42 ID:g512cMpIQ
LINE INPUT命令で入力待ちになります。
任意のテキストを入力し、CRキー→中間言語に変換します。

末尾が"&H0(=16進数のゼロ)"など、ゼロで終わる場合があります。
誤認対策のため、プログラム内部で末尾に ":",00h を追加し、
変換結果から ":",00h,00h,00h を削除しています。


【例】

>BASIC TEXT :

>CALL CLS:_KANJI


>Length : 12


>CA(Ê) 20( ) 43(C) 4C(L) 53(S) 3A(:) 5F(_) 4B(K) 41(A) 4E(N) 4A(J) 49(I)




CALL命令の場合、こうなります。
"CALL"の中間言語は"CA"、省略形"_"の中間言語は"5F(アンダーバーそのもの)"です。

某8のソフトウェア設計者・Microsoft BASIC移植者は、
元アスキー親分から「天才プログラマのS」と評価された人物です。
……余談ですが、SさんはPasacomMini PC-8001収録ゲームの1作品の作者でもありますが、
本人は「私の本職はソフトウェアのシステム設計者です」と発言しています。

Sさんは、他機種にはない、某8独自の命令である"CALL"を"CA"と定義したのでしょうか?
省略形のアンダーバーは、アンダーバーのアスキーコードそのものです。


CALL CLS命令
〜漢字BASICの漢字テキストモードで使います。
このモードでは、CLS命令は使用禁止になるので、代替の拡張命令を作りました。
CALL拡張命令の名前ですが、既存の命令と同名でも、アスキーコードになるとわかります。


_KANJI命令
〜初回では、漢字BASIC用のメモリ確保など……漢字BASICをインストールします。
もちろん、変数の初期化などがあります。
2回目以降は、漢字モードの変更になります。
_KANJI / _KANJI0 / _KANJI1 / _KANJI2 / _KANJI3 があります。
数値は引数扱いではなく、拡張命令の名前扱いです。

13 :某8〜中間言語変換プログラム (遅いので、tR高速モード推奨):2022/04/27(水) 17:44:31.09 ID:g512cMpIQ
100 CLEAR 1000,&HD800:CLS:DEFINT A-Z:AD=&HD800:BF=&HF55E
110 FOR I=0 TO 17:READ A$:POKE AD+I,VAL("&H"+A$):NEXT I
120 CLS:PRINT "BASIC TEXT : ":PRINT:LINE INPUT B$:IF B$="" THEN 120
130 PRINT:PRINT:B$=LEFT$(B$,253)+":"+CHR$(0)
140 FOR I=0 TO LEN(B$)-1:B=ASC(MID$(B$,I+1,1)):POKE BF+I,B:NEXT I
150 DEFUSR=AD:A#=USR(0):A$=""
160 FOR I=0 TO 254:A$=A$+CHR$(PEEK(BF+I)):NEXT I
170 A=INSTR(A$,":"+STRING$(3,0))-1:A$=LEFT$(A$,A)
180 L=LEN(A$):PRINT "Length :";L:PRINT:PRINT
190 SC=PEEK(&HFCAF):S0=PEEK(&HF3AE)
200 X=6:IF SC=0 AND S0>40 THEN X=12 ELSE IF SC=1 THEN X=5
210 FOR I=0 TO L-1
220 A=ASC(MID$(A$,I+1,1)):H$=RIGHT$("0"+HEX$(A),2)
230 GOSUB 270:PRINT H$;"(";C$;") ";
240 IF I MOD X=X-1 THEN PRINT
250 NEXT I
260 PRINT:PRINT:PRINT:END
270 C=A:IF C<32 OR C=127 THEN C=ASC(".")
280 C$=CHR$(C):RETURN
290 DATA 21,5E,F5,CD,B2,42,21,1F,F4,11,5E,F5,01,01,01,ED
300 DATA B0,C9

14 :文字定数・DATA命令・注釈文(’ / REM) はアスキー形式です:2022/04/27(水) 18:14:03.39 ID:g512cMpIQ
==============================
BASIC TEXT :

PRINT"Abc":PLAY"VOLT c d e":DATA cd,56,01,C9:' Comment


Length : 46


91(?) 22(") 41(A) 62(b) 63(c) 22(") 3A(:) C1(Á) 22(") 56(V) 4F(O) 4C(L)
54(T) 20( ) 63(c) 20( ) 64(d) 20( ) 65(e) 22(") 3A(:) 84(?) 20( ) 63(c)
64(d) 2C(,) 35(5) 36(6) 2C(,) 30(0) 31(1) 2C(,) 43(C) 39(9) 3A(:) 3A(:)
8F(?) E6(æ) 20( ) 43(C) 6F(o) 6D(m) 6D(m) 65(e) 6E(n) 74(t)
==============================

文字定数・DATA命令・注釈文(’ / REM) はアスキー形式です。

これは、英語の某8設計書に「〜はアスキー形式です」と定義されている、
という文章がありました。


徳間書店の「プログラムポシェット」で活躍し、
「某8FAN」ではソフト技術を担当したYさん=某8版「芸○京人」(?)は、

末期(ディスク付き)の「某8FAN」の連載で、この件に触れていました。

PLAY命令やDRAW命令の場合、小文字でも同じですが、
中間言語では小文字のアスキー形式です。

DATA命令のデータもアスキー形式です。
だから、「"1+1" "A*2" などの式は許されない」のですね。
READ命令で数値変数を指定〜"READ A"〜の場合、
"cd" "C9" など、"0123456789"以外の文字が読み込んだときは
Syntax error になります。

注釈文ですが、"’"は 3A(:) 8F(?) E6(æ) になります。
"REM"は "8F" ですが。
Yさんによると、
「"’"は"REM"よりも高機能、正確には":REM"と同等。
だから、"BEEP 'Oto wo Narasu " のように、":"なしで書くことができる。
しかし、DATA命令の直後だけは使えない。この場合のみ、":"が必要。」
……です。

15 :DATA命令で実験 (ダイレクトモードでは無意味、エラーも出さない):2022/04/27(水) 18:30:51.29 ID:g512cMpIQ
==============================
DATA 1,2,3:STOP
Break
Ok

DATA A,B,C 'STOP
Ok

DEFFNA=A
Illegal direct
Ok
==============================

":"を付けた場合はSTOP命令を実行しますが、
ない場合は実行しない、とわかります。

マニュアルに「DATA命令はダイレクトモードで実行しても意味がない」
の記述があります。

徳間書店雑誌にあった「システム上の1行プログラム」にREAD〜DATA命令がある場合、
ダイレクトモードで実行は不可、必ず行番号を付けて1行プログラムにする必要がある、
といえます。

本来ならば、DEFFN命令と同様、Illegal direct にすべきですが。


引退直前のYさんがWindowsで作った某BASIC
(※これも実名は危険、N88互換BASICなどと違い、残存某8のキチ○イに荒らされます)
は、某8に酷似していますが……、

Yさんも「ダイレクトモードのDATA命令は Illegal direct エラーにすべき」
と判断したのでしょう。

彼のWindows版某BASICでダイレクトモードのDATA命令を実行すると、
Illegal direct エラーになります。

16 :774ワット発電中さん:2022/04/27(水) 22:54:52.41 ID:g512cMpIQ
徳間書店の「某8FAN」……CALL拡張命令の表記について。

時期は断言できませんが、
目安としては、1991年9月以前の付録ディスクがない時代は、
「CALL拡張命令は、すべて"CALL"と表記、省略形の"_"は認めなかった」
と感じます。
ゲーム投稿プログラムコーナーに、FM音源使用のゲームや漢字モードのゲームが
発表は……ディスクなしの時代は一切なかったと思います。
ただ、パワーユーザーが自作のCALL拡張命令ツールを投稿→採用されたことがあり、
このときは、プログラム本体・記事の文章(徳間書店は編集部側が書く)
のいずれも、"CALL"で統一されていました。
FM音源の音楽投稿コーナーも、"CALL MUSIC"ばかりでした。


しかし、1991年10月以降〜付録ディスクの時代になってからは
"_MUSIC"なども認めるようになりました。
ゲーム投稿コーナーも、FM音源使用のゲームや漢字モードのゲームを認めるようになり、
ディスクに収録されたプログラム自体も"_KANJI"などが多くなりました。

ディスクなしの時代は、コンパイルのディスクマガジンである「ディスクステーション」に
「某8FAN」のコーナーがあり、同誌掲載のプログラムが1〜2本・同雑誌の宣伝プログラム
などが収録されました。
「某8FAN」コーナーを選択すると、BASIC起動画面と同時に
キーバッファにCALL命令を組み込み、同時実行する仕組みでした。
"call fp(n)" 〜小文字の"call"を見たことがあります。
これもYさんが作ったのでしょうか?
彼が省略形"_"を嫌っていた可能性…があるかもしれません。


アスキーの「某8マガジン」・電波新聞社の「ベーマガ」など他社の雑誌は、
早い時期から省略形"_"を認めていた・FM音源使用や漢字モードのゲームも採用していた
とわかります。

最後に。
内蔵ソフト・特殊な周辺機器なしの「初代」には、CALL拡張命令は一つもありません。
「2」以降はメモリディスク関係、「2+」以降は全マシンに漢字BASIC・大部分のマシンにFM音源BASIC、
「tR」はDisk BASIC 2.0命令・CALL PAUSE命令(待機命令)・PCM関係命令、
ディスク内蔵マシンすべてはDisk BASICの"CALL FORMAT" "CALL SYSTEM"
……以上があります。

17 :774ワット発電中さん:2022/04/27(水) 23:40:37.21 ID:g512cMpIQ
某8は、松下電器とソニーの2社が有力本体メーカー、とわかります。


なぜ、サンヨーが「2+」〜1988年・1989年まで某8に参加したのでしょうか?

サンヨーは、日本国内向けではあるものの、市販ではないマシンが多かった、と思います。
市販の「2+」であるWAVY70FD・WAVY70FD2の前身といえる
「2」規格・RAM128KB搭載のPHC-55FD2……など。

ヤフオク!でよく見るのは、「2+」でありながらディスクドライブ非搭載の
PHC-35J、これは国内の通信教育用マシンと思われます。
通信教育のテキスト付属で出品も多いから。
「初代」時代は、サンヨーとカシオの通信教育用マシンがありました。

PHC-35Jは、VRAM128KB・第一水準漢字ROM搭載・漢字BASIC搭載、です。
「2+」規格の最低限を満たしています。
市販の「2+」すべてに搭載されたディスクドライブは、「2+」規格ではオプションです。


サンヨーの市販「2+」はWAVY70FD〜「べーしっ君」同等のBASICコンパイラ・FM音源・ディスクドライブ搭載、
WAVY70FD2はBASICコンパイラ・FM音源に加え、第二水準漢字ROM、
最大の長所は「2+」唯一のディスクドライブ2台内蔵、です。
70FD2の欠点は、「2+」でありながらPAUSEキーがない(=2台目のドライブになった)、
第二水準漢字ROMは内蔵されているものの……連文節変換は非搭載、です。
ゲームのみのユーザーは、70FDのほうがいいと断言できます。
大部分のユーザーは、松下やソニーのほうがいい。
70FD2は、BASICやDOS1に詳しいユーザー向け、といえます。
BASICのマニュアルは、徳間書店編集部の言葉通り、最も優れているといえます。

サンヨーが「2+」に参加したのは、
通信教育用マシンのため、これがあるでしょう。
もう一つは、市販マシンでは「べーしっ君」同等コンパイラを内蔵している、
「べーしっ君」のソフトを解析したところ、本体への同梱を考えているルーチンがある、とわかりました。
「べーしっ君」は某8規格を提唱したアスキー自身のソフト、
正確には某8のBASIC・DOSなどのシステム開発者であるSさん(ボス曰く天才プログラマ)
が開発したソフトです。

アスキーとサンヨーの利害が一致した、といえますか。

ただ……「2+」は拡張ロムが非常に多いので、
これ以上拡張命令ロムを置く余裕がなかった〜正確にはページ1=4000h〜7FFFhの空きがない、
といえます。
「べーしっ君」の最後に、ページ2=8000h〜BFFFhの「べーしっ君」自身を
ページ1のRAMに転送し、CALL拡張命令の設定を変更するルーチンが書かれています。
市販の「べーしっ君」はカートリッジのため、必要ありません。

サンヨーの市販「2+」にあるのは、CALL BC命令です。
マニュアルに「裏RAMのページ1へ転送」の言葉はありません。「システムに登録します」と書かれています。

WAVY70FDに付属のデモプログラムは、"CALL BC"命令が必要以上に多く書かれています。
これは、他社マシン+市販の「べーしっ君」では起動を認めない……対策でしょう。

18 :774ワット発電中さん:2022/04/27(水) 23:51:58.97 ID:g512cMpIQ
徳間書店「某8FAN」の編集部は、

1986年秋発売の低価格「2」〜WAVY23の記事
1988年秋発売の「2+」〜WAVY70FDの記事
1989年秋発売の「2+」〜WAVY70FD2の記事

いずれも、付属のBASICマニュアルは優れている、
投稿コーナーの担当者も重宝している、
という記述がありました。

「2+」の2機種は、「2」時代のBASICマニュアルと
「2+」の自然画モード・縦横スクロール・漢字BASIC・FM音源BASICおよびBASICコンパイラの拡張命令マニュアル
のBASICマニュアル2冊があります。

「2」時代のBASICマニュアル、これは私も優れていると思います。
これは、「初代」命令と「2」命令の違いがわかるよう、はっきりと書かれています。

サンヨーが作成したものですが、文章や構成を見た限りでは、
「初代」初期のアスキー製汎用マニュアルの文章や構成をサンヨーがアレンジした、
アスキー側もそれを認めた、とわかります。
サンヨーも、「初代」初期はソニー・カシオ・富士通を除く他社と同様、
アスキー製マニュアルを採用した……これは、ヤフオク!の出品物などでわかりました。

19 :774ワット発電中さん:2022/05/01(日) 05:05:42.97 ID:1U9LcBfKD
危険な固有名詞は、検索避けが必要です。
8ビット機では、某8の実名を書かない、など。

存命人物の人名〜タレント・芸能人以外の人物も、
検索避けや個人情報対策が必要です。
もっとも、芸能人並みに知名度が高い人物については、
心ない者からの叩きなどがあっても、「有名税」と思っていますが。


アスキー時代にMicrosoft社へ派遣され、MS社創業者のウィリアム氏と仕事をした、
某8のシステム設計〜Microsoft BASIC移植・某8のBASIC・某8のDOS1/DOS2・漢字BASIC
などを設計した人物、ゲームではPasocomMini PC-8001に収録された1作品の作者である
……本名のイニシャルは「Sさん」ですが、「S」姓は非常に多い。
PC-8001で、雑誌の連続投稿者「芸○京人」として活躍した人物も、「S」姓です。

アスキーで某8のソフトウェアのシステムを設計した人物は、
「Jさん」と呼びます。
アスキーの元ボスからは、「天才プログラマのJ」と評価されています。

これは、名のイニシャルでもありません。
「J」は、米国のMicrosoft時代に命名された、彼のMS関係・アスキー関係のニックネームです。

アスキーから出版された某8の資料集では、サンプルプログラムの作者を務めましたが、
プログラムの注釈文では「J」と表記しています。
Z80のニモニックを小文字で書く、シンプルなプログラムでも
Microsoft M80用のマクロを多用する、などの特徴があります。

はっきり言います。Jさんはソフトウェアのシステム設計者、プロです。
一方、PC-8001で活躍した「芸○京人」さんや
徳間書店雑誌の某8プログラムで活躍したYさんなどは、優れたアマチュアプログラマです。

20 :774ワット発電中さん:2022/05/01(日) 05:52:16.70 ID:1U9LcBfKD
Jさんが作った「べーしっ君」で実験しました。


==================================================

_TURBO OFF ※「べーしっ君」の存在を確認
Ok


10 INPUT "1:BASIC 2:COMPILER ";A
20 IF A<1 OR A>2 THEN 10
30 ON A GOTO 60,50
40 '
50 _TURBO ON
60 A$="C9 ":B$=A$+STR$(VAL("&H"+A$))
70 PRINT B$
80 _TURBO OFF
90 END

run ※「べーしっ君」でコンパイル
1:BASIC 2:COMPILER ? 2
String formula too complex in 60
Ok

run ※通常のBASIC
1:BASIC 2:COMPILER ? 1
C9  201
Ok

==================================================

21 :774ワット発電中さん:2022/05/01(日) 05:53:33.43 ID:1U9LcBfKD
サンヨーの「2+」〜WAVY70FD/FD2の拡張BASICマニュアルによると。

「BASICでは、10段の文字列のスタックを持っていて、
これによって複雑な文字列演算を実行できますが、
『べーしっ君』では文字列のスタックが1段しかありません。

比較的シンプルな文字列演算でも、
"String formula too complex in xx"
というエラーが発生します。このエラーを避けるためには、
文字列の演算をできるだけ分割するようにしてください。

…………とあります。


この拡張マニュアル、Jさん本人が書いたと思いますね。
サンヨーの技術者に、このような知識はないでしょう。


某8のBASICでは、「10段の文字列スタックがある」ため、
自力で
"String formula too complex"
を出すのは極めて難しいと思います。


LEFT$(LEFT$(LE……A$,255)…))

や、

10 CLEAR 5000
20 DEFFNA$(A$)=〜
30 DEFFNB$(B$)=FNA$(B$)
40 DEFFNC$(C$)=FNB$(A$)
(略)
100 PRINT FNA$(FNB$(FNC$(……("ABCDEFGH")……)))


でも、"String formula too complex" は出ません。

後者の場合、極端に階層を深くすると
オールBASICで暴走・無限ループになる可能性があります。
Internal errorも出ません。

他のエラーは簡単に出ます。
括弧の矛盾で"Syntax error"、メモリ不足、文字列領域不足…など。

22 :774ワット発電中さん:2022/05/01(日) 06:13:40.77 ID:1U9LcBfKD
徳間書店の「某8ファン」末期=ディスク付属時代の読者投稿プログラムです。

「コンピュータが出題したエラーを出せ」とプレイヤーに指示する。
例:エラーが "Syntax error" の場合、デタラメな命令を入力する。
正解でクイズ正解、というプログラムです。

解説で徳間書店編集部のYさんが登場し、
「極めて難しいエラーもあります。
このプログラムでは、ERROR命令は反則だよ。ERROR命令は使用禁止。」
と発言しました。


"String formula too complex"
が出題されたら、大変です。
"ERROR16"で、故意にこのエラーを出す、しかない?


"Line buffer overflow"
の出し方は、わかります。

ピリオドを大量に並べる。
........................

「アスキー形式を中間言語に変換したとき、中間言語のバッファが溢れた」
という意味ですが、

"." の中間言語は、1Dh 00h 00h 00h 00h の5バイト、
「単精度実数のゼロ」になります。
1バイトのアスキーコードが中間言語5バイトになるため、
"."を大量に並べると、"Line buffer overflow" が出ます。

現役の「2+」ユーザーのときに発見しましたが、原因はわかりませんでした。

23 :774ワット発電中さん:2022/05/01(日) 20:39:18.05 ID:uhlOFgufv
「べーしっ君」について。


_TURBO ON命令と_TURBO OFF命令で
コンパイルする行を挟みます。

_TURBO ON命令と_TURBO OFF命令は、
マルチステートメントにしないこと、単独の行に置くこと。
_TURBO命令の範囲内からGOTO命令で外へ出ないこと。
これが原則です。


「べーしっ君」がある
〜カートリッジ版を差した、またはディスクからページ1RAMへロードした場合。

_TURBO ON未実行、通常のBASICのときに
_TURBO OFF命令を実行した場合、エラーは出ない=無視、です。
また、ダイレクトモードで_TURBO OFF命令を実行しても、エラーは出ません。

ここまでは知っていました。


初めて知ったこと。

_TURBO OFF命令の後は、":"でマルチステートメントが可能です。

これも、注釈文の"’"を書く場合、必ず":"を置く必要があります。
CALL命令の場合、"’"も拡張命令の一部扱いされるからです。


1990年代のパワーユーザーが作ったユーティリティプログラムは、
"CALL @"命令で起動……

作成者は、拡張命令名に英文記号も命名できます。
命名できない英文記号は、"(" , ")" , ":" です。
括弧は拡張命令名と引数を区別する、
":"はマルチステートメント、です。

24 :774ワット発電中さん:2022/05/01(日) 20:43:14.59 ID:uhlOFgufv
【原則】

_TURBO ON命令と_TURBO OFF命令は、このように使います。


10 SCREEN 0:WIDTH 80
20 SOUND 7,56+128:PLAY"VOLT O6F+64"
30 _TURBO ON
40 FOR I=32 TO 255:IF I=127 THEN GOSUB 100
50 PRINT CHR$(I);":";HEX$(I);" ";
60 IF I MOD 8=7 THEN PRINT
70 NEXT I
80 GOTO 130
90 '
100 PRINT " :7F":PRINT
110 A$=INKEY$:IF A$="" THEN 110
120 RETURN 70
130 '
140 _TURBO OFF
150 END

【ここまで】


WIDTH命令とPLAY命令はコンパイルできません。

このため、_TURBO命令の範囲外で実行します。

25 :774ワット発電中さん:2022/05/01(日) 20:45:57.58 ID:uhlOFgufv
_TURBO OFF命令で、「べーしっ君」の有無をチェックした例です。

本来の使い方ではないので、注釈文も付けました。
"’"の前に、必ず":"を書く必要があります。


10 ON ERROR GOTO 60
20 DEFINT A-Z:BC=1
30 _TURBO OFF: 'BASIC'n CHECK
40 IF BC THEN PRINT "BASIC'n Enabled!" ELSE PRINT "BASIC'n Disabled!"
50 END
60 IF ERL=30 THEN BC=0:RESUME NEXT
70 ON ERROR GOTO 0


【「べーしっ君」なし】

run
BASIC'n Disabled!
Ok


【「べーしっ君」あり】

run
BASIC'n Enabled!
Ok

26 :774ワット発電中さん:2022/05/01(日) 21:00:21.68 ID:uhlOFgufv
テクハンの「ワークエリア」より。

>PROCNM(FD89H, 16)
>内容 拡張ステートメント(CALL文の後)、拡張デバイス(OPENの後)の名前が入る。0は終わり


_TURBO ONの場合
"_TURBOON" "_TURBO ON" 〜 "_TURBO(空白8)ON"

_TURBO OFFの場合
"_TURBOOFF" "_TURBO OFF" 〜 "_TURBO(空白7)OFF"


"TURBO"と"ON/OFF"の空白が多すぎると、Syntax errorになります。

※作成者のJさん、拡張命令名の部分でこれをするとは……。


_TURBO ONは、引数付きの場合もあります。

例:_TURBO ON(A%)

BASICプログラムの部分とコンパイルする部分で、整数型変数/整数型配列変数を共用する場合です。

未使用の変数を指定すると、エラーになります。必ず値を代入すること。



10 DEFINT A-Z:'''A=0
20 _TURBO ON(A)
30 REM
40 _TURBO OFF

run
Illegal function call in 20
Ok



10 DEFINT A-Z:A=0
20 _TURBO ON(A)
30 REM
40 _TURBO OFF

run
Ok

27 :774ワット発電中さん:2022/05/03(火) 22:14:17.44 ID:T5h03UJsY
10 print "*"
20 goto 10

28 :774ワット発電中さん:2022/05/04(水) 00:58:34.09 ID:s9pdtFUB/
「べーしっ君」のコマンド


_RUN:プログラム全体をコンパイルします。

 _TURBO ON〜_TURBO ONがあるプログラムはコンパイルできません。
 "_TURBO ON" "_TURBO OFF" は、CALL拡張命令です。
 もちろん、他のCALL拡張命令すべてもコンパイルできません。


_TURBO ON / _TURBO OFF:コンパイルする範囲を括ります。

 いずれも、単独の行に置くこと。マルチステートメントは使えません。
 (前述した _TURBO OFFの直後は可能と思われますが、
 実験など特別な理由がない限り、マルチステートメントを使うのは避けるべき。)

 コンパイルできない命令があると、Syntax errorになります。

 ダイレクトモードで _TURBO ON命令を実行すると、"Illegal direct"エラーが出ます。
 _TURBO OFF命令はエラーが出ません。

 _TURBO ON(A%)のように引数を指定すると、BASICの部分とコンパイルする部分で
 整数型変数・整数型配列変数を共用することができます。
 未使用の整数型変数を指定するとエラーになるので、
 事前に"A%=0"のように代入し、整数型変数の領域を確保してください。


コンパイルするプログラムで、最も重要なこと: 【サンヨーの拡張マニュアルを丸写し…ですが】

 無限ループ(例:100 GOTO 100)を作ると、CTRL+STOPキーでも
 プログラムを止めることができなくなります。
 必要な場合は、キー入力を受け付ける部分を作ってください。
 (例:100 A$=INKEY$:IF A$="" THEN 100 ELSE END)


サンヨーWAVY70FD/70FD2独自の拡張命令:_BC

 スロット#3−3 ページ2(8000h-BFFFh)にロムで内蔵されている
 「べーしっ君」のソフトウェアを、ページ1(8000h-BFFFh)のRAMに転送し、
 _RUN / _TURBO ON / _TURBO OFF の拡張命令を有効化します。

 WAVY70FD/70FD2は「2+」です。「2+」全機種は、RAMが#3−0にあります。
 フロッピーディスクがあるときは、F342hからページ1のRAMスロット番号を読み取ります。
 SHIFTキー起動でフロッピーディスクを切り離した場合は、ソフトウェア側がページ1のRAMスロットを調査し、
 RAMと判定されたスロットのページ1にソフトウェアを転送します。

 スタックがページ2(8000h-BFFFh)にある場合は、絶対に実行しないでください。暴走します。
 _BC命令は、可能な限りBASICの起動直後に実行する、
 プログラムではCLEAR命令の前に実行する、これを心掛けてください。

 もちろん、メモリディスクやメモリマッパーと併用はできません。
 _SYSTEM命令でDOS1へ移行した場合、ページ1RAMの内容が破壊されます。
 再びBASICに戻ったときは、_BC命令の再実行が必要です。

 ※ちなみに、ページ1RAMを使うユーティリティソフトも、作者さんが同様の警告をしています。

29 :774ワット発電中さん:2022/05/05(木) 17:04:28.08 ID:jRJ0DQOuK
「べーしっ君」を組み込み、以下のプログラムを実行。

> 10 print "*"
> 20 goto 10

RUN命令は、もちろんCTRL+STOPで終了します。

「べーしっ君」の_RUN命令は実行可能ですが、
無限ループのため、リセット/電源を切る しかありません。


サンヨーの拡張マニュアルは、開発者のJさん本人が書いたと思いますが、

>無限ループ(例:100 GOTO 100)を作ると、CTRL+STOPキーでも
>プログラムを止めることができなくなります。
>必要な場合は、キー入力を受け付ける部分を作ってください。

と強調しています。


「べーしっ君」の名称は、アスキーの「ログイン」「某8マガジン」に掲載された
同名の4コマ漫画から命名されました。

開発者のJさん本人は "XBASIC" と命名したそうですが、
アスキー側から「開発者・技術者は名前のセンスがない」
と否定され、4コマ漫画と同名の「べーしっ君」になりました。

英語名は "XBASIC" です。


「べーしっ君」のスペルは、"BASIC'n" です。
これは、「べーしっ君」ソフトのメモリダンプ/バイナリを見るとわかります。

某8の残存連中は 「BASICKUNだろwww」と喚いているので、危険です。


※私自身、現役の「2+」ユーザーの頃、
WAVY70版「べーしっ君」のメモリダンプで確認しています。
これは、_BC命令でページ1RAMへ転送しています。

30 :774ワット発電中さん:2022/05/05(木) 17:22:38.12 ID:jRJ0DQOuK
パワーユーザーの方が作ったユーティリティソフトで。
"_@" コマンドで起動するものです。
「べーしっ君」はロム化し、「Web某8」の基本#1に差しました。

※ユーティリティの作者さんは、「バッ活」→徳間書店「某8FAN」(ディスク付録)
に投稿・採用され、末期はブラザー系のソフト自販機「TAKERU」で同人ソフトとして販売、
後にフリー化され、海外の方がサポートしている……といえば、わかるでしょうか。

※ページ1RAMは、ユーティリティソフトが使うため、ロム化しました。

==================================================
4000 41 42 00 00 32 40 00 00:F5:AB  2@
4008 00 00 00 00 00 00 00 00:00:
4010 42 41 53 49 43 27 6E 20:17:BASIC'n
4018 76 65 72 20 32 2E 30 20:1D:ver 2.0
4020 28 43 29 20 31 39 38 38:8E:(C) 1988
4028 20 62 79 20 41 53 43 49:3B: by ASCI
4030 49 00 FB 11 47 40 E5 21:E2:I û G@å!
4038 89 FD CD 65 40 E1 D8 CD:7E:?ýÍe@áØÍ
4040 45 40 FB A7 C9 D5 C9 52:E0:E@û§ÉÕÉR
4048 55 4E 00 49 41 54 55 52:28:UN IATUR
4050 42 4F FF 4F 4E 00 88 4E:03:BO ON ?N
4058 54 55 52 42 4F FF 4F 46:20:TURBO OF
4060 46 00 FF 4E FF E5 1A 3C:CD:F  N å <
4068 28 0B CD 78 40 E1 20 F5:AE:( Íx@á õ
4070 EB 5E 23 56 C9 37 E1 C9:6C:ë^#VÉ7áÉ
4078 B7 C8 1A BE 13 23 28 F8:AD:·È ¾ #(ø
4080 3C 20 0A 2B 7E FE 20 23:50:<  +~þ #
4088 28 FA 2B 18 ED 1B 1A A7:2E:(ú+ í  §
4090 13 20 FB 13 13 3C C9 16:6F:  û  <É
4098 4E 0A 4D 0E 48 BF 48 F2:F4:N M H¿Hò

color   auto    goto    list    run

[DUMP :4000:0] SLOT:1      SUM:NO
==================================================

※WAVY70版(転送後)・「ログイン版」と呼ばれる「tR」対応のディスク版は、
「バッ活」の「某8-AIDS」などでページ1RAMを解析してください。
「某8-AIDS」は、テープ環境・RAM32KB環境でも動きます。

31 :774ワット発電中さん:2022/05/05(木) 17:44:04.44 ID:jRJ0DQOuK
ハート電子産業のBASICコンパイラ、の広告画像が出てきました。

徳間書店の「プログラムポシェット」時代に、
編集部が「おすすめ」と発言した……記憶があります。


========================================

100 TIME=0:A=0:B=0
110 FOR I=0 TO 40
120  A=A+1
130   GOSUB 210
140   GOSUB 210
150  IF A<180 THEN 120
160 NEXT I
170 '
180 PRINT TIME
190 END
200 '
210 C=C+1
220 IF C<20 THEN 210
230 RETURN

========================================


>BASICコンパイラはCALL文で呼び出す形ですので、
>いちいちロムカートリッジを取りはずす必要がありません。

>上記プログラムで、コンパイルして実行まで1秒
>実行スピードはBASICの140倍


「べーしっ君」で、上記プログラムは?

【「2+」標準モード】
BASIC:302 べーしっ君:11 …… 27.5倍

【「tR」高速モード】
BASIC: 54 べーしっ君: 4 …… 13.5倍

32 :774ワット発電中さん:2022/05/05(木) 17:55:35.80 ID:jRJ0DQOuK
「べーしっ君」の場合、コンパイル時間も含むため、こうなるのでしょう。

某8のシステム開発者のJさんは、サードパーティのコンパイラに触発され、
「システム開発者自身がコンパイラを作った」?


ロム版の開発ツールは、ありがたいと思います。

PC-8001時代は、連続投稿者の「芸○京人」さんが
ロム版のアセンブラを購入し、「すごく速い」と評価していました。
某アーカイブにある当時の雑誌に、アセンブラを購入直後の
「芸○京人」さんの言葉があったと思います。
彼は、ハンドアセンブルの時期が長かった……のです。

33 :774ワット発電中さん:2022/05/07(土) 16:49:00.42 ID:BXtL5ukMm
カラー絵文字のUnicodeを調べたところ、
16進数で「U+FFFF」以内の文字〜黄色い☆などは、多くのサイトで使える、
例:メルカリ、知恵遅れ袋……など。
しかし、大部分のカラー絵文字は16進数で「U+10000」以降のため、使えないと思っていいでしょう。


試しに、JIS第一・第二水準外かつ「草g」「島屋」レベル以外の文字を書いてみましょう。
IMEで「環境依存」と表示される字体です。

「森?外」「石?」「?ぐ」「?楽部」……2ch.scでは、どう?

34 :774ワット発電中さん:2022/05/07(土) 17:08:03.14 ID:BXtL5ukMm
2ch.sc+Windows10/11環境の場合、「?」になりますが……

他の掲示板では
「森(鴎)外」→「森鷗外」
のように、10進数コードで表示される場合があります。
正字体の「(鴎)」は、Unicodeの16進数コード「U+9DD7」です。


ここで本題〜10進数・16進数変換の場合、どうしますか?

Excelがあれば、HEX2DEC関数・DEC2HEX関数で変換できます。

BASICの場合は

〜某8、例えば現行機種+Webブラウザで「Web某8」を起動し、
? HEX$(255)でFF・? &H80で128 でしょうか。

〜徳間書店雑誌で活躍→編集部に登用された、
引退後はPC-8001の「芸○京人」さんと同じ進路・同じ職業に就いた
Yさんが引退直前に作ったWindows版某BASIC…でも可能です。
某8などの8ビットマシンでは不可能な範囲、-32768〜32767を超える値も計算できます。
※某8のHEX$・POKE・PEEKなどは、32768〜65535も受け付けますが、原則は負の-32768〜-1です。


結論を言いましょう。

Windows10/11マシンは、付属の「電卓」で可能です。
設定を「プログラマー」に変更すると、16進数などの変換・計算ができます。

(計算が終わったら、「標準」に戻すことをおすすめします。)

35 :774ワット発電中さん:2022/05/07(土) 17:29:37.19 ID:BXtL5ukMm
>>33ですが、
「森(鴎)外」「石(鹸)」「(剥)ぐ」「(倶)楽部」
を正字体で書きました。


ジャストシステムの回し者ではありませんが、
私は「一太郎/ATOK」付属の単漢字ツールを使用しています。
調べたい文字を選択し、CTRLキー×2を押すと、
「常用漢字」「人名用漢字」「教育漢字の履修学年」「JIS水準」
「JISコード」「シフトJISコード」「区点」「面区点」
「Unicode」「UTF-8」
が表示されます。

漢字の「力」「夕」などもチェックできます。
カタカナの「カ」「タ」などは……不可と表示されます。


Windows標準のIMEで「環境依存」と表示された文字は、
JIS第一・第二水準の範囲外です。SJISの範囲内である「g」「」なども該当します。

「叱」の正字体は「U+20B9F」のため、
大部分のUnicode漢字が使える環境でも、絶対に使ってはいけないと思ってください。

「巽」の正字体=「巳巳」は、「U+2F884」です。
大阪の地下鉄千日前線の終点「南巽駅」は、正字体の「巳巳」です。
地下鉄千日前線の列車・全駅ホームに、正式表記の「南巽」表記があります。

※将来は近鉄大阪線「弥刀」駅への延伸計画が……実現したら、「南巽」の表記は同駅限定になるでしょう。

36 :774ワット発電中さん:2022/05/07(土) 17:44:00.91 ID:BXtL5ukMm
手書きの場合、
常用漢字外の大部分と常用漢字の一部例外〜「謎」「餅」などは、PC等のコードは無視し、
「可能な限り正字体で書く」
のが無難でしょう。

すべての旧字体・正字体とは言いませんが、
「本来の楷書と本来の明朝体」で字体が違う文字が多い、
常用漢字の字体は、本来の楷書が採用された例が多いのです。
例:示偏の「ネ」、一点しんにょう、「平」の字体……など。
中国の古典・博物館の展示物などで……わかると思います。


しかし、現在の日本は「旧字体クレーマー」というキチ○イが多すぎるので、危険です。

ド素人に「迷」と「謎」のしんにょうを書き分けろ、と言うのか?

北海道小樽市の「樽」の旁は、「尊」と書くのは危険、上部は「八」の正字体が無難です。

※台湾・中国は、これらの違いを弁えていますが。
台湾の偉人「鄭成功」の場合、
楷書系の字体では「鄭」の部首を「尊」と書いています。


この世界も、某8と同じ……ですね。

37 :774ワット発電中さん:2022/05/07(土) 23:12:19.66 ID:BXtL5ukMm
某8のBASICの知識のみ。

プチコン4でプログラムの練習。


【F4】でエディタへ

==================================================
'JRの本社所在地

DIM JR$[7]

FOR I=1 TO 6
 READ JR$[I]
NEXT

CLS

FOR I=1 TO 6
 PRINT JR$[I]
NEXT

WHILE BUTTON(0)==0
'ボタン入力待ち
WEND

PRINT

END

DATA "札幌","東京","名古屋","大阪","高松","福岡"
==================================================

【F5】で実行
==================================================
札幌
東京
名古屋
大阪
高松
福岡

※(任意のボタンで終了)
==================================================


「ゲーム作り専用、それ以外の目的には全く適していない」と痛感。

漢字入力は?
「単漢字」の場合、JIS第一水準のクイズか?
原則として「音読み」、「阪」など〜固有名詞用の漢字は訓読み。
「しょう」など、同音が多い漢字は……地獄だ。

38 :774ワット発電中さん:2022/05/07(土) 23:29:23.74 ID:BXtL5ukMm
プチコン4は
やはりPC-8001/PC-8001mkII/PC-8801シリーズの……になってしまう?


PC-8001「も」ディスクに対応しているうえ、
優れたサードパーティ製ディスクBASICでテープ用プログラムも実行できるので……

「芸○京人」さんのプログラム&彼が他人の作品で最も評価した「ピンボール」で遊ぶか。
いずれも、短いBASICプログラム+マシン語のメインルーチンだけど、
後継機種/他機種のBLOADに相当する命令があるので、
追加したら
CLOAD"(ファイル名)"[CR] → MON[CR] → L[CR] → [CTRL+B] → RUN
の自動化が可能。


注意を一つだけ。
PC-8001/PC-8001mkII/PC-8801シリーズ…の場合、
「F5」キーは厳禁。
BASICのRUN命令・一部のプログラム/ゲームの「F5」キーなど。
アドベンチャーゲームの一つは、「F5」キーの文字列は手入力で代用。

39 :774ワット発電中さん:2022/05/08(日) 09:35:14.45 ID:YLvo4Ld21
【JIS第一・第二水準外かつ「g」「」以外の漢字】


「森(鴎)外」……2ch.scでテスト。


キーボードから直接入力:「森?外」

他掲示板の文字化けをコピペ:「森鷗外」


後者は、半角の「&H40407;」です。


Windows10/11付属の「電卓」の「プログラマー」モードで変換します。

"DEC" に 40407 と入力する → "HEX" に 9DD7 と表示されます。

「(鴎)」は、「U+9DD7」とわかります。


ジャストシステム「一太郎/ATOK」付属の漢字情報より

==================================================
文字          :(鴎)
異体字        :鴎

音読み        :オウ
訓読み        :かもめ
部首読み      :とり
文字画数      :22

常用漢字      :該当しない
表外漢字字体表:印刷標準字体
人名用漢字    :該当する
漢字配当      :配当外
漢字水準      :第3水準

JIS           :
シフトJIS     :
区点          :
面区点        :1-94-69
Unicode       :U+9DD7
UTF-8         :E9 B7 97

単漢字情報  (C) 2019 株式会社ジャストシステム
============================================================

40 :774ワット発電中さん:2022/05/08(日) 09:53:23.92 ID:YLvo4Ld21
間違えました。

他掲示板の文字化け / 2ch.scに入力 は、

「森&#40407;外」
の半角です。

※"&H"……某8のBASICの癖が出てしまった。


「g」を調べてみます。

============================================================
文字          :g
異体字        :

音読み        :
訓読み        :なぎ
部首読み      :ゆみへん
文字画数      :14

常用漢字      :該当しない
表外漢字字体表:該当しない
人名用漢字    :該当しない
漢字配当      :配当外
漢字水準      :第3水準

JIS           :9348
シフトJIS     :FA67
区点          :11540
面区点        :1-84-26
Unicode       :U+5F45
UTF-8         :E5 BD 85

単漢字情報  (C) 2019 株式会社ジャストシステム
============================================================

「IBM拡張文字」といいます。

Wikipediaで「g」を調べてみました。

>g 115-40 0xFA67 U+5F45

区点コード・SJISコード・Unicode…です。


Wikipediaの項にある「IBM拡張文字を名前に持つ有名人」より

有名人の名前〜荒らし・誹謗中傷対策のため、実名は伏せます。

「高」「間」「塚」「徳」「崎」の異体字・旧字体があります。

地デジテレビでは、これらが表示できる、とわかります。
元SMAPの某タレント出演の番組を調べる、など。

41 :774ワット発電中さん:2022/05/10(火) 20:25:12.12 ID:9KhbkZCKX
某8のテープゲームで、
ディスクBASICのワークエリアを使うものをディスク化する場合。
事実上「2」以降になるけど。

必要なプログラムやデータを
ページ1RAM・VRAM後半・メモリマッパーのRAM(※事実上「tR」専用)
のいずれかに仮ロードする。

以下のマシン語ルーチンで、ワークエリアのフックを "C9h"="RET" で埋める。
FILESなどの命令、LOAD"A:"などの装置名が無効…を確認する。

ディスクBASICを無効化してから、
仮ロードしたプログラムやデータを本来のアドレスに転送する。


ラベル"H.TIMI" はタイマ割込ルーチン用で、
ディスクBASICなしで
かつFM音源・RS-232C・特殊な周辺機器が一切ない場合は
デフォルト値が "C9h"="RET" 。

PSG限定でも、BGMを使う場合は、事実上このフックを使う必要がある。
あとは、マシン語で "ON KEY GOSUB" に相当〜
特定のキーの監視にも必要。
これらは、いったん"C9h"にしてから、
ゲームプログラム側で新たに設定すること。
テクハンや資料集の記述通り、フックの内容を保存し、
自分の割込ルーチンから抜ける直前に旧フックのコピーを実行すること。


>H.TIMI  EQU  0FD9FH  ; タイマ割込フック、1/60秒に1回呼ばれる


>DISABLE: ; "CALL DISABLE"命令の例

>;;;PUSH HL  ; CALL拡張命令の場合、HLレジスタにテキストポインタを保存

>LD HL,0FDEFH
>LD DE,0FDF0H
>LD BC,00DBH ; FDEFh - FECAh を "C9h"="RET" で埋める
>LD A,0C9H
>LD (HL),A
>LDIR
>LD HL,0FEBCH ; ディスク関係のフックを無効化〜"C9h"="RET"
>LD (HL),A
>LD HL,0FFA7H
>LD (HL),A
>LD HL,0FFACH
>LD (HL),A
>LD HL,H.TIMI ; 0FD9Fh のタイマ割込フックも無効化
>LD (HL),A

>;;;POP HL ; CALL拡張命令の場合、テキストポインタの値をHLレジスタに戻す

>RET

42 :774ワット発電中さん:2022/05/10(火) 20:50:20.95 ID:9KhbkZCKX
アスキー「某8マガジン」末期の1992年5月号より。

P50-P69に、ディスク版「べーしっ君」の特集記事があります。
これは、2000年代の「某8マガジン永久保存版」にも収録されました。

バージョンは2.1、「tR」の場合はR800命令でコンパイルする、
もちろん、市販カートリッジ版/WAVY70内蔵版のバージョン2.0の最後にある
ページ2ロム→ページ1RAM転送ルーチンは削除されました。


ページ1のRAMにロードするため、メモリディスクなどと併用はできません。

「べーしっ君」はメモリの制限が厳しい、といえます。


P63より

>起動時以外はディスクアクセスをしないで、BASICの入力状態
>にも戻ってこないようなプログラムの場合、プログラムの頭で

>POKE &HFD9F,&HC9
>CLEAR 0,&HF37F

>とすることにより、最大限のフリーエリアを使用することができる。

>(ただし、これを実行した後ディスクアクセス等を行うと、
>ディスクを破壊してしまうことがある。
>よくわからない、という人以外は使わない方がいいだろう。)


ディスク関係のフックすべてを埋めたほうがいい、
ディスクBASICなしと同じ状態にしたほうがいい、と思います。


>某8 BASIC version 4.0 (※「Web某8」版)
>Copyright 1990 by MS
>28815 Bytes free (RAM32KB・64KB以上のディスクなしは、28815になる)
>Ok

>FILES
>Illegal function call ※ディスクBASICの命令は実行不可
>Ok

>10 'TEST

>SAVE"A:TEST.BAS"
>Bad file name ※装置名"A:"=ディスクは無効
>Ok

>BLOAD"CAS:",R
>Bad file name ※「tR」の場合、テープの装置名"CAS:"が削除された
>Ok

43 :774ワット発電中さん:2022/05/10(火) 21:06:15.56 ID:9KhbkZCKX
ディスクBASICを無効化した場合、こうなります。


>某8 BASIC version 4.0
>Copyright 1990 by MS
>25292 Bytes free ※CTRL+STOP連打で1ドライブモードになった
>Disk BASIC version 2.01
>Break ※"AUTOEXEC.BAS"の実行を強制中断
>Ok
>bload"********.***",r 【CALL拡張命令をページ1RAMへ転送+有効化】
>Ok

>_DISABLE 【ディスクBASICを無効化するルーチンを作った】
>Ok

>FILES
>Illegal function call
>【ディスクBASICの各命令は、CMD・IPLと同様のフックがあります】
>Ok

>10 'DISABLE

>save"A:DISABLE.BAS
>Bad file name
>【装置名を省略した場合は"CAS:"に変更、「tR」は装置名省略もこのエラーです】
>Ok

>color auto  goto  list  run

44 :774ワット発電中さん:2022/05/10(火) 21:28:29.34 ID:9KhbkZCKX
ヤフオク!やメルカリで、某8の「べーしっ君」の出品者がいたら、

1.本人ではなく、家族・遺族が出品したかどうか
2.本人の場合、出品者のBASICなどの知識を調べる・推測する

をチェックします。


「『べーしっ君』でプログラムを実行したところ、すべて暴走しました」

と発言した出品者は、某8のBASICやマシン語の知識はない、とわかります。

知識がない出品者のほうが安全です。
知識がある出品者は、残存某8連中の可能性が高いため、危険だと思っています。


いずれも、某アーカイブにあります。

1.サンヨーWAVY70FD/FD2の拡張BASICマニュアル
2.アスキー「某8マガジン」1992年5月号

に、「べーしっ君」の詳細があります。

PLAY命令・DRAW命令・PRINTUSING命令・DEFFN命令などは
どう考えてもコンパイルできない、
別の言い方をすると、非常に便利な命令なので、命令の内部ルーチンも複雑だ

……と思いますが。

45 :774ワット発電中さん:2022/05/10(火) 21:58:55.35 ID:9KhbkZCKX
メルカリは、なぜキーワードとは無関係な出品物が出てくるのだろうか?
"べーしっ君"のように、ダブルクォーテーションで括った場合であっても。

人気アニメの「○○の○」? (すべて凶悪な漢字です)
関西の大手私鉄系の某歌劇団? (これも某8残存連中と同類に荒らされるので、実名は伏せます)


適切な出品物は、

1.アスキーの雑誌に連載された4コマ漫画の「べーしっ君」
2.某8のBASICコンパイラで、↑と同名、パッケージに↑のイラストがある

でしょうか。


ドラクエ以前の堀井ゲームで、ファミコンに移植&リメイクされた作品があります。
2022年5月時点では、事故の直後のため、このゲームは不謹慎ですが。

8ビット各機種版のゲームは知名度が高い、「プロジェクトEGG」にもPC-8801版がある
※他社ゲームではPC-8801版「は〜りぃふぉっくす」の世代? 「雪の魔王編」は事実上PC-8801SR以降、漢字+FM音源+ローマ字入力対応

ものの、

1987年にファミコンへ移植&リメイクされたゲームは出てきませんでした。

既にドラクエの時代だから、堀井ゲームのファミコン移植版といえども、比較的知名度は低いのでしょう。

ファミコン版は、4コマ漫画の「べーしっ君」&彼の父親が登場する……のに。

46 :774ワット発電中さん:2022/05/10(火) 22:50:05.53 ID:9KhbkZCKX
>>42訂正

「よくわからない、という人以外」
は誤り、正反対の意味になります。



アスキー「某8マガジン」末期の1992年5月号より。

P50-P69に、ディスク版「べーしっ君」の特集記事があります。
これは、2000年代の「某8マガジン永久保存版」にも収録されました。

バージョンは2.1、「tR」の場合はR800命令でコンパイルする、
もちろん、市販カートリッジ版/WAVY70内蔵版のバージョン2.0の最後にある
ページ2ロム→ページ1RAM転送ルーチンは削除されました。


ページ1のRAMにロードするため、メモリディスクなどと併用はできません。

※「べーしっ君」のロム化
〜エミュレータの場合、16384バイトのファイルを作る、これが無難です。
明日猫さんの資料によると、後からロードした場合、
ワークエリアを書き換える必要がありますが(WAVY版もそれをしていると判明)、
カートリッジは起動時にCALL拡張命令の設定をするので、面倒な作業は不要です。


P55より

>従って、裏RAMをRAMディスクなどで使用することはできない。

1992年春時点では、既に最後の「tR」〜FS-A1GTがあるはず。
_MEMINIは「メモリディスク」と呼ぶべき。
ソニーは、「2」の時代から「メモリーディスク」と呼んでいます。


「べーしっ君」はメモリの制限が厳しい、といえます。
この号、サンヨーWAVY70FD/FD2拡張マニュアルのいずれも、
「メモリの制限が厳しい」と強調しています。

P63より

>起動時以外はディスクアクセスをしないで、BASICの入力状態
>にも戻ってこないようなプログラムの場合、プログラムの頭で

>POKE &HFD9F,&HC9
>CLEAR 0,&HF37F

>とすることにより、最大限のフリーエリアを使用することができる。

>(ただし、これを実行した後ディスクアクセス等を行うと、
>ディスクを破壊してしまうことがある。
>よくわからない、という人は使わない方がいいだろう。)

文字通りのことをした場合、ディスクBASICの命令は極めて危険、
非常に面倒ですが、ディスク関係のフックをすべて"C9h"で埋めるべき。

47 :CALL拡張命令ルーチンのページ1RAMローダー:2022/05/10(火) 23:26:13.41 ID:9KhbkZCKX
                      1 ;
                      2 ;*** CALL拡張命令ルーチン ページ1RAMローダー ***
                      3 ;
                      4
    8F90              5 ORG 08F90H ; アマチュアは、「ORG疑似命令」が使えるアセンブラがいいと思います
                      6
                      7
    8F90 3A09FD       8 LD A,(0FD09H)
    8F93 E640         9 AND 040H ; メモリーディスクは有効か? (これは…ないと思いますが)
    8F95 B7          10 OR A
    8F96 2809        11 JR Z,NOMEM ; 通常は……ラベル NOMEM: へ
                     12
    8F98 1E05        13 LD E,5 ; _MEMINIを既に実行し、有効とは! ※Eレジスタにエラー番号を入れます
    8F9A DD216F40    14 LD IX,0406FH ; "Illegal function call"エラーで中断 ※ここでは、インタースロットコールは不要でした
    8F9E CD5901      15 CALL 0159H ; 無駄……に気付いたけど、後から機能追加ができるので、敢えてそのままにします
                     16
    8FA1 AF          17 NOMEM: XOR A
    8FA2 210090      18 LD HL,9000H
    8FA5 77          19 LD (HL),A
    8FA6 23          20 INC HL
    8FA7 77          21 LD (HL),A
                     22
    8FA8 3A42F3      23 LD A,(0F342H) ; 9000h-CFFFh の内容を ページ1に転送します
    8FAB 2640        24 LD H,40H
    8FAD CD2400      25 CALL 0024H
    8FB0 210090      26 LD HL,9000H
    8FB3 110040      27 LD DE,4000H ; 「べーしっ君」の開発者さんは、
    8FB6 010040      28 LD BC,4000H ; 1バイトの無駄も許さない……しかし、アマチュアは彼の真似をすべきではありません
    8FB9 EDB0        29 LDIR ; PC-8001の連続投稿者として活躍したアマチュアの方は、"00h"="NOP"でメモリを確保していました
    8FBB 3AC1FC      30 LD A,(0FCC1H)
    8FBE 2640        31 LD H,40H
    8FC0 CD2400      32 CALL 0024H
    8FC3 FB          33 EI
                     34

48 :CALL拡張命令ルーチンのページ1RAMローダー:2022/05/10(火) 23:27:30.66 ID:9KhbkZCKX
    8FC4 3A42F3      35 LD A,(0F342H) ; ディスクがある場合、F342hにページ1RAMのスロット番号が入っています
    8FC7 E603        36 AND 03H
    8FC9 07          37 RLCA ; 基本スロット番号×16
    8FCA 07          38 RLCA
    8FCB 07          39 RLCA
    8FCC 07          40 RLCA
    8FCD 5F          41 LD E,A
    8FCE 3A42F3      42 LD A,(0F342H)
    8FD1 E60C        43 AND 0CH ; 拡張スロット番号×4
    8FD3 83          44 ADD A,E
    8FD4 3C          45 INC A ; ページ1のため、+1
    8FD5 5F          46 LD E,A
    8FD6 1600        47 LD D,0
    8FD8 21C9FC      48 LD HL,0FCC9H ; 【スロットアトリビュート】〜カートリッジは不要ですが、後からロードした場合は必要です
    8FDB 19          49 ADD HL,DE ; 0FCC9h + 基本スロット番号×16 + 拡張スロット番号×4 + ページ番号(常に1)
    8FDC 3620        50 LD (HL),20H ; CALL拡張命令を有効:ここに 20h を入れます、「べーしっ君」の開発者さんも同様でした
                     51
    8FDE 2109FD      52 LD HL,0FD09H
    8FE1 7E          53 LD A,(HL)
    8FE2 F620        54 OR 20H ; メモリディスク対策:_MEMINI命令の実行を禁止します
    8FE4 77          55 LD (HL),A ; _MEMINIは実行不可〜"Illegal function call"エラーになります
                     56
    8FE5 C9          57 RET
                     58
                     59
    8FE6 0005        60 DEFS 5

49 :CALL拡張命令ルーチンのページ1RAMローダー:2022/05/10(火) 23:28:58.79 ID:9KhbkZCKX
                     61
    8FEB 23          62 INC HL ; ***** A%=USR(xxxxh):引数〜CFFFh のメモリフィル、0で埋める……おまけルーチンです *****
    8FEC 23          63 INC HL
    8FED 5E          64 LD E,(HL)
    8FEE 23          65 INC HL
    8FEF 56          66 LD D,(HL)
    8FF0 21FFCF      67 LD HL,0CFFFH
    8FF3 B7          68 OR A
    8FF4 ED52        69 SBC HL,DE
    8FF6 E5          70 PUSH HL
    8FF7 C1          71 POP BC
    8FF8 D5          72 PUSH DE
    8FF9 E1          73 POP HL
    8FFA 13          74 INC DE
    8FFB AF          75 XOR A
    8FFC 77          76 LD (HL),A
    8FFD EDB0        77 LDIR
                     78
    8FFF C9          79 RET
                     80
                     81
    9000             82 END

50 :774ワット発電中さん:2022/05/10(火) 23:56:26.21 ID:9KhbkZCKX
「裏RAM」という言葉。

某8は危険、「そんな言葉はない」と攻撃される・荒らされる原因になります。

アスキーの資料集も、
「CALL拡張命令は、ロムライターが必要です」
と断言していた、のです。


サンヨーWAVY70FD/FD2拡張マニュアルの"CALL BC"命令〜「システムに登録します」、
現存するサイトではWAVY70FD/FD2の "CALL BC"命令の項も「おまじない」の一言で終わり、

……「本当のことは、危険なので言えない」とわかります。

実際には、市販のディスクマガジンなどがページ1RAM用のCALL拡張命令を多用していた、のですが。



FM-7/77シリーズ、PC-8801シリーズの世界でも
「裏RAM」という言葉が登場します。

8ビット機のため、CPUがアクセスできるメモリは65536バイトに限られます。
また、RAM64KB〜の場合、システムロムと重複する部分のRAMが裏RAMになります。


PC-8001の時代は、RAMの上限は32KBでした。RAM16KBモデルもありました。
1981年秋になると、連続投稿者の「芸○京人」さんが雑誌投稿の引退直前に、こう発言しました。

「私は、国家試験の勉強のため、ここで引退します。
1981年秋になりました。PC-8001用のディスクドライブもある程度普及したうえ、
増設RAMも安価になりました。
私の最後の投稿作品は、RAM32KB用で作りました。ディスク対応のためです。
皆さんも、PC-8001のRAMを増設することをおすすめします。」

※ワークエリアを消費しないので、テープ環境用ゲームのディスク化が可能な
サードパーティ製ディスクBASICの登場は1984年です。


徳間書店の雑誌で某8のプログラムを連続投稿し、後の「某8FAN」で編集部に登用され、
引退後は「芸○京人」さんと同じ職業に就いたYさんは……
最初はPC-8001とエプソンのハンドヘルド機のユーザーでした。

Yさんの師匠は、「芸○京人」さんでしょう。

51 :774ワット発電中さん:2022/05/13(金) 21:12:21.31 ID:Y9YYadtd1
私の年齢になると、現行ゲームにはついていけない。

Switchの場合、ミニゲームや1980年代前半の古すぎるゲームを除けば……
某電車運転ゲームと「メルブラ」のオリジナル相当のゲームを購入。
オリジナル版は2000年代〜古い。

Switchの場合、ダウンロード用のmicroSDカードは、
ノーブランドの安物はトラブルの原因になる、
有名メーカー製またはゲームショップで販売されているmicroSDを使うべき、と痛感。


「プチコン4」でさえ、心ない輩に荒らされる、
子供や若者は関わらないほうがいい、と思います。

何が「令和の現在にピーガー(=データレコーダー/カセットテープ)」だ!
8ビット機上位機種は、BASICの時代からディスクドライブ搭載、
マイクロキャビンやエニックスなどのアドベンチャーゲームも、大部分がフロッピー版。

PC-8801版の「は〜りぃふぉっくす」や「(堀井ゲーム、2022年は実名を自粛)」
の場合、カタカナかつサウンドなしと貧弱だが、フロッピー版だ!

何でもかんでも某8扱いするな!と言いたい。


現在はキチ○イが多すぎるから、ファミコンやSFCのゲームといえども、
「スーパーマリオ」「ドラクエ」「FF」「ボンバーマン」「桃太郎電鉄」
などに留めたほうが無難。

「燃えプロ」の黒カートリッジ版や「ハイパーオリンピック」のテレビ番組版
あたりを出したら、極悪キチ○イから荒らされる! 危険だ!

52 :774ワット発電中さん:2022/05/13(金) 21:28:10.67 ID:Y9YYadtd1
機械翻訳を使い、某国〜オランダ・スペイン・ブラジル・韓国ではなく、
某8が失敗した国の某8パワーユーザーさんにメールを出したところ……

彼に私の言いたいこと・真意は伝わらなかった、
やはり本当に英語ができないと……とわかりました。

ただ、機械翻訳の名誉のため。
「危険な言葉は翻訳しない」ようです。
誤用の「敷居が高い」は、「閾値が高い」と解釈するようです。

それでも、その某8パワーユーザーさんは、
日本を除く外国各国で、私が考案したPLAY命令のMMLを発言している、と判明しました。
昔のバス・路面電車のドアブザーを再現したつもりのMMLです。
これは、エミュレータのPSG再現テストに使える、と思います。

53 :774ワット発電中さん:2022/05/13(金) 21:53:33.39 ID:Y9YYadtd1
2022年4月、漫画家の藤子Ⓐさん(表示できる?)が亡くなりました。

先生本人は、「忍者ハットリくん」がお気に入りの作品、みたいです。


「忍者ハットリくん」は、1981年版のアニメの知名度が非常に高い、といえます。
現行のインド版逆輸入アニメも…知名度はありますが、
1981年版の連中が「ツバメちゃん」云々とうるさい!
外国版だから、「ツバメちゃん」などに口出しするな! インドの基準を優先しろ、と言いたい。

主人公のケン一叩きも多いのですが……、
アニメ版は「ドラえもん」よりも後の作品のため、ケン一を悪く描いたのは宿命でしょう。


「忍者ハットリくん」の原作漫画は、1964年〜1966年の漫画雑誌「少年」に連載されました。
現在でも電子書籍版が購入可能です。(小学館が改変した部分が多い、といえますが)

主人公のケン一の性格は、そんなに悪くない。
シンゾウの周囲には、オヒメちゃん・シノビノ博士親子&「ロボ丸」がいる。
故郷からハットリくん・シンゾウ兄弟の両親が上京し、ケン一宅の隣に入居した。
話題は、1960年代に流行したスパイ映画や時代劇映画、特撮の怪獣などが多い。
ついでに。ハットリくんの居候先であるケン一の家の住所は、
先生が住んでいたアパートの住所を使っている。
ケン一の担任教師は、「小池さん」にヒゲを付けた人物〜おじさんだが、名前はない。


結論をいえば、「忍者ハットリくん」の原作漫画は、
知名度が低いままのほうがいい、と思います。

54 :774ワット発電中さん:2022/05/13(金) 22:02:37.40 ID:Y9YYadtd1
芸能人の訃報などについて。

2021年12月に札幌で亡くなった娘といい、
2022年5月に亡くなった某トリオの一人といい。

「いのちの電話」? いい加減にしろ、と言いたい。

「いのちの電話」で解決するなら、誰も苦労はしないぞ。

ついでに。
「いのちの電話」の相談員は、素人ではない。
現在は、素人に手を出す、横暴な専門家などが多い。

ACジャパンにもいえるが、マスゴミはうざい!! いい加減にしろ!!

55 :774ワット発電中さん:2022/05/14(土) 11:30:53.94 ID:TtWfXe3B3
Switchで、
「メルブラ」のオリジナル相当のゲーム……どころか、
格闘ゲームの「メルブラ」&特典の電子ブックまで購入。

私は「レトロ厨」だけど、
やはり、現在の任天堂など〜ゲーム会社やサービス業にもお金を払うべき。
GAFAばかりでなく、国内の会社にもお金を払うべき。


カラオケ再生ソフトの任天堂版を……これはレンタルか?
どの曲を再生しても、
マリオなど〜「任天堂ゲームのキャラクターの動画」が出てきます。

56 :774ワット発電中さん:2022/05/14(土) 11:51:47.99 ID:TtWfXe3B3
ネットは、「無関係な外国人画像・海外画像」

〜それも「目玉が飛び出した男」「毛深い男」「妊婦の腹」「他者を侮辱する画像」
など、「無関係」では済まない、最悪画像の巣窟になりました。

任天堂などの国内メーカーおよびサードパーティは、そうならないよう願います。


地元のJR北海道の駅で、JR北海道などのパンフレットを入手。

JR北海道単独のパンフレットは、JR北海道の特急+北海道新幹線H5系の写真、のみです。
JR北海道・JR東日本2社の企画乗車券のパンフレットは、
「JR北海道の気動車」と「JR東日本の気動車」のイラストがあります。


バス会社にも、同じことがいえます。

ジェイ・アール北海道バスの自社車内広告は、「自社のバスと強調している」イラストがあります。
北海道中央バス公式サイトの画像は……
小樽市の会社のため、小樽市中心部の画像ですが、
「この位置・角度では、ジェイ・アール北海道バスの高速バス」が写るはず。
自社の1台のバスで「JHBの高速バスを隠す」などの努力をしている、
表に小樽市内線の自社バスを大きく写している、とわかります。


鉄道会社とバス会社は、可能な限り自社の画像に留める、
同業他社の画像は直通運転相手などに限定、これも必要最小限に留めるべき、
ではないのか?

同業他社の写真・イラスト・画像を認めると、
「無関係な海外画像」「無関係な外国人画像」の巣窟になるぞ。

まともな会社・法人等は、そうならないよう願います。

57 :774ワット発電中さん:2022/05/15(日) 15:45:06.62 ID:35kKjycSf
>>53
1981年版アニメ「忍者ハットリくん」……の続き。

藤子Aさんは原作者に過ぎない、
しかも1960年代の原作とは別物で、「スタッフが勝手に作った」といえますが。


「ママとツバメちゃんの秘密」という話。

ツバメちゃんは三葉家の正式な居候ではなく、
「伊賀関係者だから、押しかけ・ゲストでも、三葉家が面倒をみる」
ポジション。

ツバメちゃんがオタフク風邪になったとき、三葉家の部屋に籠り、
ママが看病をしていた。それも数日間。

ケン一・シンゾウ・獅子丸は、わがままで、かついい加減な連中だから、いいとしても。

ママは、ハットリくんにも事情を話さなかった。
数日もあるのだから、帰宅したサラリーマンのパパに話せば
……と言いたいところだが、この回には登場しなかった。

さすがのハットリくんも「不審に思い、強行手段に出る」〜当然だ。


最後のオチは、ハットリくんが強行手段に出た、もちろんケン一たちも協力したため、

「女の秘密に手を出した・干渉した」

〜ハットリくんまで悪者にした挙句、ハットリくんまで制裁した!!


1980年代になると、男を悪く描くフィクション作品が多くなったが、

アニメ版「忍者ハットリくん」も例外ではない、といえるか。


1960年代の原作では、藤子Aさんは上記のような描写は、一切していません。

藤子Aさんどころか、他のフィクション作家も、このような描写は許されない時代でした。

58 :774ワット発電中さん:2022/05/15(日) 16:17:02.84 ID:35kKjycSf
フィクション作品には、絶対に毒が必要です。

例外は、パソコンやゲーム機などのコンピュータゲームです。
このため、私は
「コンピュータゲームと他のフィクション作品は別物」
とみなしています。


1950年代の松竹映画に、「東京ストーリー」と「小豆島の瞳」がありました。
危険なため、実名は避け、この名称で呼びます。

「東京ストーリー」="Tokyo Story" などは、
欧米では「世界一優れた映画作品」と評価されています。
「ローマの休日」「風と共に去りぬ」などではなく、なぜ「東京ストーリー」?

「東京ストーリー」は、主人公の老人を邪険にした長男と長女が悪役で、
田舎にいる末娘は
「兄さんと姉さんはひどすぎるわ。戦死した次兄の未亡人であるお義姉さんのほうが優しかったわ。」
と発言していますが…。
実際には、長男と長女は「他作品では善人の範疇になる、良い意味で悪役らしくない」人物です。

「すべての登場人物が事実上の善人」なのです。

「小豆島の瞳」〜原作者は、明治時代生まれ・小豆島出身の女性で、
映画監督の兄・音楽家の弟の兄弟……などが映画化しました。
この作品も、登場人物は事実上の善人ばかり。
しかし! 過酷な戦争の描写があるため、これはきついと思います。


現在のフィクション作家の連中にとっては、
「東京ストーリー」「小豆島の瞳」
は、邪魔な作品・目障りな作品、といえます。


現在のアニメ作家に至っては、NHKがリメイクしたドラマと事実上同名の作品を作り、
1973に亡くなったKさんの作品を葬ったのです。
……幸い、Kさんは阪急歌劇団の作品も作ったため、
現在の阪急歌劇団の脚本家・スタッフ・現役団員は、Kさんを正当評価していますが。


1980年〜1981年、当時のパソコン雑誌で、
PC-8001とMZシリーズの連続投稿者として活躍した人物がいました。
当時は高等教育機関の学生で、引退後に「先生」と呼ばれる職業に就きました。
現在は、PC-8001・PC-8001mkII・PC-8801シリーズの関係者から評価されています。

「芸〇京人」さんです。

本業および現在の趣味の世界では、本名で活動しているうえ、
「昔は『芸〇京人』のペンネームでパソコン雑誌に投稿したり、
某パソコンショップ(現在はヤマダ系)のゲームを作った」
と発言しています。


「芸〇京人」さんの場合、
8ビットパソコン初期はコンピュータゲームの世界で活躍した、
引退後〜現在は、
「本業・趣味のいずれも、現実世界を優先している」
のです。

59 :774ワット発電中さん:2022/05/16(月) 06:08:17.82 ID:u6yfXoG8p
某8の「初代」初期、1983年〜1984年の本体(ソニーなどを除く)に添付された
アスキー製マニュアル。
2冊あるうち、コンピュータの概要に触れた「ユーザーズマニュアル」より。

文章で、子供相手ではなく、一般の初心者向けに書かれたとわかります。


>コンピュータはプログラムを与えなければ何もできません。まずは他人が
>作ったプログラムを利用するのが手軽ですが、本当に使いこなすには、
>プログラミングを少しでも覚えてしまった方が有利です。
>POKE文やUSR関数などを使って壊れてしまったように見えても、
>電源を切り、再び入れれば必ず正常になります。
>プログラムを作って実行させることを恐れることはありません。


>また「こんなつまらないプログラムを作っても」と考えるのは禁物です。
>誰もが初めから大きな有益なプログラムを作れるわけではありません。
>英会話の勉強のように「数をこなすこと」「習うより慣れること」が大切です。


>小さなプログラムであれば、いきなりキーボードから入力し、実行しながら
>直してゆけばできてしまうかもしれません。
>しかし、ちょっと大きくて役に立つ、あるいはおもしろいプログラムを作ると
>なったら、フローチャートや変数表は必要不可欠となります。

60 :774ワット発電中さん:2022/05/16(月) 06:09:36.37 ID:u6yfXoG8p
>RENUMで行の順を変えようとしたり、SCREEN1でPSETを使うなどは許されない。
>BASIC説明書で調べ、関数の使い方は実験しておく。


>許されるパラメータの範囲
>0〜255
>(引数が1バイト限定の命令・関数を例示)
>(内部ルーチンに1バイトを超えると"Illegal function call"のルーチンがあります)
>(SCREEN命令・COLOR命令などは、特定の値を超えると
>ERROR5に相当するルーチンを呼び出します)
>(例:「初代」のSCREEN命令は0〜3、COLOR命令は0〜15…が指定可能です)


筆者は、某8のシステムソフトウェア開発者であるJさん本人、
あるいはPC-8001・PC-8801などのマニュアルを作成したアスキーのスタッフ
……でしょうか。


当時のマニュアルやコンピュータ書籍は、
まともな筆者が多かった、と思います。


しかし、現在のコンピュータ書籍は、他人・他者を侮辱する発言、
運転免許や自動車とは無関係な世界にもかかわらず、
「MT車とAT車の関係と同じ、昔は誰もがMT車を運転していたし〜
(AT車しか運転できない奴、AT限定免許の奴はクズwwwww)」

……ここまでひどくなった、のです。

61 :774ワット発電中さん:2022/05/19(木) 00:54:09.17 ID:7hgF/00J1
CALL拡張命令のワークエリア表示・実験


10 ON ERROR GOTO 150
20 SCREEN 0:WIDTH 80:DEFINT A-Z:CN$="":CN=&HFD89
30 FOR I=0 TO 15:POKE CN+I,0:NEXT I
40 GOSUB 100:PRINT:FOR I=0 TO 15:CN$=CN$+CHR$(PEEK(CN+I)):NEXT I
50 PRINT "PROCNM(FD89,15) = ";CHR$(34);CN$;CHR$(34)
60 END
70 '
80 '
90 '
100 _X
110 '
120 '
130 '
140 RETURN
150 IF ERL<>100 THEN ON ERROR GOTO 0
160 PRINT USING "Error Code : ###";ERR
170 PRINT:BEEP
180 RESUME NEXT


【使い方】

100 _MEMINI(0)

のように、CALL拡張命令を行番号100に書く。


念のため、CALL拡張命令カートリッジを差す行為と
ページ1にCALL拡張命令ルーチンを組み込みは、避けてほしい。


【無難な拡張命令の例】
_MEMINI(0) ※もちろん「2」以降
_CLS ※漢字BASICがある場合、「2+」以降で故意に漢字BASICを切り離すと……

【"Syntax error"以外のエラーの例】
_MEMINI(-1)


引数の括弧で実験、"@"などの英文記号で実験……など。

英文記号の場合、"LIST100"で行番号100に登録されたどうか、を確認してほしい。

62 :774ワット発電中さん:2022/05/19(木) 01:29:22.56 ID:7hgF/00J1
徳間書店の雑誌〜1990年代に活躍したパワーユーザーの方は、
"CALL @"
で起動するユーティリティツールを作りました。
彼のツールを組み込むと、"CALL S"でDOS1/DOS2へ入ることができる、とあります。
本人曰く「単に5文字分横着なだけですが、ほんの少しだけ楽です。」
……彼も省略形"_"を嫌っている、と感じます。


韓国のパワーユーザーの方は、彼のYouTube動画によると、
"_50Hz" などの拡張命令を自作している、とわかりました。


拡張命令名と引数の区切りは、括弧が必要です。
CALL拡張命令の作成者は、"(" ")" の判別ルーチンも書く必要があります。

1983年時点のアスキー製BASICリファレンスマニュアルより

>●書式
>CALL <拡張ステートメント名>[(<引数>[,<引数>…])]

>●文例
>CALL TALK("A","BC","DEF)
>_TALK("A","BC","DEF")

システム開発者のJさん本人が書いたと思われます。

拡張命令の開発者とハードウェアの開発者に
「CALL命令の引数は、括弧が必要です」
と教える、意でしょう。

括弧で「拡張命令名と引数の判別を容易にした」と思われます。

63 :インタープリタのエラールーチン実験:2022/05/20(金) 01:53:01.82 ID:HfFP05P81
;;;INC HL ;USR関数の引数が整数型の場合
;;;INC HL ;0F7F8hに値が入る
;;;LD E,(HL) ;Eレジスタにエラーコードを入れる
;;;LD HL,0F41CH
;;;XOR A
;;;CPL ;エラーの行番号を65535=ダイレクトモード扱いにする
;;;LD (HL),A
;;;INC HL
;;;LD (HL),A
;;;JP 406FH ;エラー発生ルーチンを実行



10 CLEAR 200,&HDE00:DEFINT A-Z:AD=&HDE00
20 FOR I=0 TO 15:READ A$:POKE AD+I,VAL("&H"+A$):NEXT I
30 A=2:INPUT "ERROR No.";A
40 '''IF A<1 OR A>255 THEN 30
50 PRINT:DEFUSR=AD:A=USR(A)
60 DATA 23,23,5E,21,1C,F4,AF,2F
70 DATA 77,23,77,C3,6F,40,00,00


【ERROR命令について】

引数のエラー番号は1バイトのみ。
2バイトの場合:-32768〜-1の場合は "Illegal function call"
それ以上の場合:"Overflow"

ERROR命令に限らず、引数が1バイトの命令・関数は、このルーチンを呼び出します。


ERROR 0
Illegal function call
【0は「1バイトの範囲内」ですが……、
ERROR命令では許されない引数のため、ERROR5相当を呼び出します】
Ok

ERROR -1
Illegal function call
Ok

ERROR 32768
Overflow
Ok

ERROR 51
Internal error
Ok

64 :インタープリタのエラールーチン実験:2022/05/20(金) 01:54:57.62 ID:HfFP05P81
【プログラムを実行しました】

run
ERROR No.? 20

Verify error
【テープが削除された「tR」も、このエラーは残っています】
Ok

run
ERROR No.? 70

Disk offline
【ディスクありの場合、
ディスクなしの「2」以降は "RAM disk offline"、
ディスクなしの「初代」は "Unprintable error" = 未定義エラー】
Ok

run
ERROR No.? 255

Unprintable error
【未定義エラー】
Ok

run
ERROR No.? 0

【0,256,512など……xx00hは暴走します(引数の上位バイトは未代入)。
マシン語からインタープリタのエラールーチンを呼ぶ場合、
Eレジスタが0にならないよう、注意すること】

run
ERROR No.? 258

Syntax error
【0102h〜(引数の上位バイトは未代入)】
Ok

run
ERROR No.? 65536
Overflow in 30
【DEFINT A-Zがあるため、INPUT命令でこのエラーが発生しました】
Ok

65 :774ワット発電中さん:2022/05/21(土) 00:03:03.27 ID:1TQebKa5A
「カラオケJOYSOUND for Nintendo Switch」

〜エクシング(ブラザー工業グループ、昔はソフト自販機の会社)と任天堂の
カラオケソフト。

著作権者は、以下の通り。

>(C)2017 Nintendo
>JOYSOUNDは株式会社エクシングの登録商標です。

>日本コロムビア株式会社
>株式会社JVCケンウッド・ビクターエンタテインメント
>キングレコード株式会社
>株式会社テイチクエンタテインメント
>ユニバーサルミュージック合同会社

66 :774ワット発電中さん:2022/05/21(土) 00:23:17.16 ID:1TQebKa5A
「カラオケJOYSOUND for Nintendo Switch」

デフォルトのカラオケ映像は、任天堂ゲームのキャラクター〜マリオ・ピーチ姫など。

「ハードウェアメーカーの自社商品を強調している」〜これは評価。

現在は、無関係な海外画像、不快なステマ行為が多くなった。

「エクシングの本業はカラオケ配信、スマホなど他の機器にもあるが、
Switchは任天堂の商品・任天堂の世界だ」

と強調、こうでなくては。

映像に「懸垂式モノレール」が登場するけど、
現実世界とは明らかに無関係、これも評価。
現存する国内の懸垂式モノレールは、湘南モノレールと千葉都市モノレール、のみ、
海外でも〜英語版Wikipediaによると、現存するのはドイツの4箇所……程度みたい。
……ただ、映像スタッフに湘南出身者や千葉出身者がいるかも?

67 :Windows版ドラクエ10ベンチマークソフト:2022/05/21(土) 20:42:49.47 ID:XK/l0Dazf
某所より

========================================
動画「じゃんぼりぃの傘」

【ドワーフ】の女性【じゃんぼりぃ】?が【岳都ガタラ】で【赤い傘】を見かけた事から
物語は始まる。
モンスターを倒して貯めたゴールドで傘を買ったじゃんぼりぃだが、あいにくの快晴。

そこでじゃんぼりぃは錬金術と思われる儀式で雨を降らそうと試みる。
しかしスライムたちが降ってくるわ、【くさった死体】が地中からわらわら沸いてくるわ、【プクリポ】の大群はやってくるわで術は一向に成功しない。
そんな中、降ってきたスライムたちの一匹でじゃんぼりぃになついてその場に残っていた【スライムベス】があまりの暑さにダウンしてしまう。
あわてたじゃんぼりぃは持っていた傘を広げ、日陰を作った事でスライムベスは無事回復。
そうしているうちに雨も降ってきて、見守っていた冒険者やスライム、くさった死体、プクリポ達と共に喜びの中で動画は終了し、テスト結果が表示される。
========================================

私のノートPCでは、「1920×1080 標準」で「スライム級:普通」

……「○○おじさん」と揶揄される古いビジネスノートPCで、このレベル。
外付けの4Kモニターや「最高品質」にすると、
「くさった死体」や「ばくだん岩」が出てくる、と思います。

68 :Windows版ドラクエ10ベンチマークソフト:2022/05/21(土) 21:13:06.90 ID:XK/l0Dazf
動画「じゃんぼりぃの傘」は、

女性「じゃんぼりぃ(ドワ子)」と弱小モンスター「スライムベス」
のため、「傘の多用が許される」といえます。

男のキャラクターは、ドラクエの世界でも許されない、でしょう。


現在の日本では、
女は必要以上に傘を使う・建物内に傘を持ち込む
……に留まらず、
「建物の床を傘の先で突く」「濡れた傘を建物内に持ち込む」
行為が蔓延しています。

明らかに傘が不要な日でも、電車・バスなど公共交通機関の車内は
傘を持ち込む女が多すぎる、
ドラクエベンチの傘みたいな短い傘/短傘が多すぎる、と感じます。


男は、絶対に同じ行為は許されませんね。

「男は、筆記用具入れ並みに短い・小さい折り畳み傘をカバンに入れる、
カバン転倒に備え、筆記用具並みの小さい袋に入れる、
『パンツ』などの下着・非常用の袋……レベルの危険な物、として扱う」
べき、そうでないと危険だと思います。

刃物や爆発物ではない、鉄道会社やバス会社の禁止物リストに入っていない
……という、甘い考えは許されません。

任天堂・ソニー・ディズニー社・映画会社すべて……など、
「著作権に厳しい会社の事業所(※)や店舗に、
USBメモリ・USB HDD・DVD-Rなどを持ち込む」
のと同じくらい危険です。
これらは、違法な著作物を書き込むことが可能です。


(※)会社の事業所は、本社・支社・工場の場合、
例え一般客・エンドユーザーが入れる場所であっても、
むやみに口にすると、キチ○イから
「本社・支社へ直訴」「文字通り、工場の現場に入る」
とみなされ、攻撃されます。ネットでは炎上の原因になります。
……任天堂の場合、かつては京都本社に一般客対象の修理センターがありましたが、
現在はありません。

69 :774ワット発電中さん:2022/05/22(日) 11:32:31.95 ID:YuZK++iz6
1986年、ファミコンディスクシステム用で発売されたゲーム
「バレーボール」。
ソフトメーカーは任天堂自身、
著作権表示も"(C)1986 Nintendo"と1人の個人名のみ。

1人の個人名は……「パックスソフトニカ株式会社」の設立者・開発者で、
ドラクエ堀井などと同様、エニックスのコンテストの入賞者みたい。


ディスクシステム版「バレーボール」の原作は、
「パックスソフトニカ株式会社」が自社名義で発売した
某8のゲーム〜「アタック・フォー」。

名前通り、4人でバレーボール?
某8のハードウェアの制限で、4人になったみたい。

ただ、ディスクシステム版「バレーボール」が縁で
任天堂の下請になり、以降の任天堂ゲームの数作品を開発した。
同社は、既に解散済み、現存しない。

もちろん、ディスクシステム版「バレーボール」は、1チームの選手は6人、
相手チームと合計で12人の選手が登場する。


Switchの「ファミリーコンピュータ Nintendo Switch Online」にも
「バレーボール」が収録されています。

70 :774ワット発電中さん:2022/05/22(日) 12:00:26.74 ID:YuZK++iz6
ただ、「パックスソフトニカ株式会社」は、
同社が某8に移植した
「ポートピア連続殺人事件」の某8版に問題があります。


オリジナル版は、PC-6001の堀井ゲーム、
これを移植したのですが……

他機種と違い、某8はグラフィックモードで文字を表示するとき、
LOCATE命令+PRINT命令ではなく、
「OPEN命令でグラフィック文字の装置名を定義し、ファイルを開く、
点を打つ命令で描画場所を決める、
PRINT#1というファイル出力命令で文字を出力する」
必要があります。
SCREEN1は……VDPのTMS9918系では「グラフィックモード1」というものの、
BASIC上ではテキストモードの命令のみ、
他機種のように文字の色を変えることは、原則としてできません。
そのため、某8「初代」用の大部分のゲームは、
TMS9918系の「グラフィックモード2」〜SCREEN2または多色刷りモード、です。


PRINT#命令で文字を出力、例えば"A"を表示する場合、
"A"のグラフィックを描画、になります。
PSET命令・LINE命令などと違い、命令単独で座標と色は指定できません。
COLOR命令の第一パラメータでデフォルト色を表示する文字の色に変更し、
PSET命令などで描画位置を決めます。ここでDRAW命令を使う方もいます。

PSET命令の場合、色を省略すると、
COLOR命令の第一パラメータ=デフォルトの文字色の点が表示されます。

PRESET命令の場合、色を省略すると、
COLOR命令の第二パラメータ=デフォルトの背景色で点を打ちます。
文字を打つ場所が背景色(某8のデフォルトでは4=青)の場合、PRESET命令が望ましい、といえます。


ところが、同社が移植した某8版「ポートピア」は、
ここで"PSET(X,Y)"、それも色省略のため、余計なドットが表示されます。

朝日新聞社の小中学生向け雑誌では、
"PSET(X,Y),POINT STEP(0,0)"を使いましょう、の記述がありました。
PRINT#の場所は、点を打つ必要がありますが、同じ色で点を打ちなさい、の意です。

他社のアドベンチャーゲームでは、原則はPRESET命令、文字描画の場所が背景色以外の場合は
"PSET(X,Y),色"を使い、不要・不適切なドットが表示されないよう努めています。


エニックスのゲーム全般にいえること。
移植者の名前は、パッケージにはありません。マニュアルに小さく記述されています。
オリジナル機種の作者名が表示されています。

某8版「ポートピア」の場合、
不要なドットは、オリジナル作者の堀井が原因ではない、堀井に責任はない、といえます。


他のエニックスのゲームも、移植者の名前を調べたほうがいい、と思います。
FM-7版が原作、PC-8801シリーズ版が移植版の場合、
PC-8801シリーズに詳しいZ80マシン語書籍の著者が移植した……などの例があります。

71 :774ワット発電中さん:2022/05/25(水) 22:18:00.45 ID:TsGHURQlg
2021年にSwitchを買ったものの……
2022年4月までは、Switchには悪いけど(=持ち主は、時代遅れのおっさん)、
「プチコン4」+PC-8001/8801シリーズ専用でした。

5月になり、ようやくSwitchらしい使い方を始めた、のです。

「電車でGO!! はしろう山手線」「メルブラ」のダウンロード版を購入、
「カラオケJOYSOUND for Nintendo Switch」のチケット購入、

現時点で唯一のパッケージ版ソフトは
「ナビつき! つくってわかる はじめてゲームプログラミング」

……こんなところ、です。

72 :774ワット発電中さん:2022/05/25(水) 22:51:19.32 ID:TsGHURQlg
「Nintendo Switch Online」のファミコンです。

……「スーパーマリオ」以外は、お気に入りのゲームがない、
ハドソンの作品を増やしてほしい(「忍者ハットリくん」などの版権モノは除外)
と思った、のですが。

コナミの場合、「グ○○○○ス」がある
〜某8版「グ○○○○ス」は、某改造さんの餌食になりますが(例:セガ用に勝手移植など)、
某改造さんはファミコン版の「グ○○○○ス」には手を出さないみたい、ですね。

最近、オリジナルはディスクシステムでセーブありの「マリオ2」と
オリジナルは大容量ロム(某8でいうメガロム)の「マリオ3」を始めました。

公式設定で「クイックセーブ・巻き戻し」ができます。

(あまり騒ぐと、「良い子のみんなは〜」などと喚くキチ○イに荒らされるので、ここまで。
任天堂は、レトロゲームのため、ユーザーにサービスをしたと思われます。)

(現行ゲームの「山手線」「メルブラ」などで失敗したときは、巻き戻しは通用しません。)


マリオ系の場合、「Bボタンで加速+右下」で、
デカマリオをブロック1個分の隙間に入れることができます。

Switch版の場合、「十字キーで右下」で認識は難しい、
「左スティックで右下」のほうが簡単・認識しやすい、と感じます。


某8の場合、BASICにSTICK関数、
マシン語用のBIOSルーチンに "GTSTCK (00D5H)" があります。
スティック番号0はカーソルキーで代用〜斜めは「右キー+下キー」などを同時押し(キーマトリックスで認識)」、
スティック番号1と2は、ジョイスティック・ジョイパッドのポート番号です。
返り値は「1:上 3:右 5:下 7:左」ですが、
斜めの「2:右上 4:右下 6:左下 8:左上」があります。未入力は「0」。

私は、現役の某8ユーザーの頃は、斜め押しは不要・
遊んだゲームは上下左右で十分なものばかり、でした。


PC-8001のBASICゲーム(例:「芸○京人」さんの作品など)は、
テンキーの2・4・6・8でキャラクター操作が多かった、と思います。
これはテンキーのキーマトリックスのため、一般の数値キーとは別物です。
……Switchの8001・8801シリーズの〜は、
2・4・6・8をコントローラーの十字キーと左スティックに割り当てていますね。
もっとも、8001のBASICの時代は、斜めの判定が必要なゲームはなかったでしょう。

73 :774ワット発電中さん:2022/05/25(水) 23:19:40.31 ID:TsGHURQlg
任天堂は、
「ハードウェア・ソフトウェアのいずれも優秀」
といえます。

1983年時点で、他社は追随できないスペックのゲーム機〜ファミコンを発売しました。
当時の他社ゲーム専用機は、某8をゲーム専用にしたレベルばかりでした。


任天堂の自社ソフトウェアは、
1988年10月23日発売の「マリオ3」が優秀、
ファミコンの能力をフル活用している、といえます。

「マリオ3」の欠点は、「セーブができない」、でしょうか。
Switch版は巻き戻し&セーブ機能があるので、
当時は……なユーザーも、楽しむことができるでしょう。

74 :774ワット発電中さん:2022/05/25(水) 23:56:57.38 ID:TsGHURQlg
ディスクシステム版の「マリオ2」は1986年6月3日発売、
「8−4」をクリアする度に回数がセーブされ、
8回クリアすると「スタートボタン+Bボタン」で
裏ワールド「A−1」〜「D−4」へ行けるようになります。
これは、ワープを使ってクリアもカウントされます。

ワープなしでクリアした場合は「9−1」〜「9−4」の9ワールドへ。

Switch版の場合、ディスクの読み込み箇所は待ち時間になっています。

1.「4−4」から「5−1」へ入るとき (ワープゾーンは前半同士・後半同士に限られる、必ず「4−4」を通る必要がある)
2.5ワールド以降(裏も同じ)でゲームオーバー・またはゲームクリアから、タイトル画面に戻るとき
3.「8−4」をクリアすると、エンディングの直前に読み込み、エンディングはディスクシステムの音源を使用
4.ワープなしでクリアし、エンディングから「9−1」へ行くとき
5.8回以上クリア後に、タイトル画面から裏ワールドの「A−1」へ行くとき

ディスク片面のソフトですが、「スーパーマリオ」よりも容量が大きいため、
後半ワールド・エンディング・「9−1」・裏ワールドでディスクの読み込みがあります。
ディスクシステムは「クイックディスクの任天堂版」のため、
シーケンシャルアクセス(先頭から)に限られ、アクセスは遅い、といえます。

75 :「Web某8」+USBパッドでジョイパッドの実験プログラム:2022/05/26(木) 20:26:17.85 ID:kdWku7/il
※STICK関数のところは、マシン語用のBIOSを使用
市販ゲームなど〜マシン語のソフト・プログラムは、このルーチンを使用しているはず


10 CLEAR 200,&HDE00:DEFINT A-Z:AD=&HDE00:DEFUSR=AD:SCREEN 0:WIDTH 80
20 FOR I=AD TO AD+15:READ A$:POKE I,VAL("&H"+A$):NEXT I
30 INPUT "0:Keyboard  1:Port-A  2:Port-B";A:IF A<0 OR A>2 THEN 30
40 ON STRIG GOSUB 80,80,80,80,80:FOR I=0 TO 4:STRIG(I) ON:NEXT I
50 B=USR(A) : 'B=STICK(A)
60 PRINT B
70 GOTO 50
80 PLAY"VOLT R64":FOR I=0 TO 0:I=PLAY(0):NEXT I
90 DEFUSR=&H156:A=USR(0):END
100 '
110 DATA 23,23,7E,E5,CD,D5,00,E1
120 DATA 77,C9,00,00,00,00,00,00
130 '
140 'INC HL
150 'INC HL
160 'LD A,(HL)
170 'PUSH HL
180 'CALL GTSTCK ; "GTSTCK = 00D5H"
190 'POP HL
200 'LD (HL),A
210 'C9

76 :「Web某8」+USBパッドでジョイパッドの実験プログラム:2022/05/26(木) 20:43:12.39 ID:kdWku7/il
手持ちのUSBパッド

1.バッファローのSFC型USBパッド
2.ホリのPS4用USBパッド、Windowsマシンに接続
3.サイバーガジェットのSwitch用無線/有線兼用パッド、Windowsなどは有線で接続可能

で実験
……「Web某8」の場合、USB端子に挿入→認識したとき、メッセージが表示される


SFC型パッド〜十字キーは「上+右」などで簡単に斜め押下を認識

PS4パッド〜Windows上は左スティックのみ認識、斜め押しで押下を認識

Switchパッド〜Windows上は左スティック・十字キーの両方が認識可能、
 左スティックは問題なし、十字キーも「上+右」などで簡単に斜め押下を認識

すべて:斜めは「2」「4」「6」「8」


私の環境では、
Switch+サイバーガジェットパッド無線モードでは
「Nintendo Online」のマリオ系ゲームで斜めの認識は苦手、と感じるけど……


このプログラムは、ON STRIG GOSUBの割込命令、
スペースキーまたはパッドのボタン(某8のBASIC/BIOSにある範囲)で終了します。
ボタンの認識も、確認したほうがいいでしょう。


※スペースキーを押した場合、キーバッファに" "(コード20h=32)が入るので、
短時間のウエイト+キーバッファクリアが必要です。

77 :某8初期〜1983年・1984年頃の某8用ジョイスティックについて:2022/05/26(木) 20:56:22.45 ID:kdWku7/il
某8の初代「初期」のジョイスティック。

本体メーカーの純正オプションで、操縦桿タイプ・2ボタンのジョイスティックを用意しました。
カシオとソニーを除くメーカー各社は、すべて同型です。
OEM元は不明ですが……アスキーが本体メーカーに斡旋、でしょうか。
なお、富士通のFM-X用も、某8他メーカーと同じOEMジョイスティックです。

ヤフオク!・メルカリを見ると、わかると思います。


1986年以降〜低価格「2」の松下FS-A1・ソニーHB-F1の時代になると、
松下製ジョイパッドやハドソン製ジョイパッドなどへ移行しました。
コントローラーの外観は、ファミコンのコントローラーから
セレクトボタン・スタートボタンを外したもの、です。

某8と一部のレトロパソコンでは、
ATARI仕様ジョイスティックを2ボタンに拡張したものが採用されました。

78 :コントローラー・ジョイスティックについて:2022/05/26(木) 21:08:36.45 ID:kdWku7/il
ファミコンの各ゲームの場合、セレクトボタンは名前通りプレイヤー数やモード選択、
スタートボタンはゲーム開始とポーズ、これが原則です。

一部のファミコンゲームは、十字キーで選択可能、Aボタンでゲームスタート
もありましたが……、ドラクエシリーズでしょうか。
ドラクエシリーズの場合、ゲーム途中でポーズは不要、とわかりますね。

ハドソンのアクションゲーム〜版権モノになりますが。
1986年3月5日発売の「忍者ハットリくん」は、
ゲーム中で本格的にセレクトボタンを使う・セレクトボタンが絶対に必要なゲームです。
セレクトボタンを素早く押し、忍法を選択します。押下回数を覚える必要があります。
ファミコンの時代は、ゲーム本編のボタンは事実上Aボタン・Bボタンの2つに限られました。
「忍者ハットリくん」は例外でしょう。

79 :774ワット発電中さん:2022/05/29(日) 21:20:57.12 ID:GTafbNi3n
Switchの「山手線」で思ったこと。

タイトーの「電車でGO!」といえども、
1990年代後半の「電車でGO!」シリーズとは全くの別物、です。
プレイするとき、昔の作品は忘れる・捨てるべき、です。


「山手線」は、「JR東日本許諾商品」とあります。

JR東日本とは無関係な鉄道・車両は、一切登場しない。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

現実世界の鉄道・車両の説明でも、
国鉄時代の車両〜例:189系・185系などは、JR東日本へ引き継いだ車両に限られる。
私鉄など他社と交差している箇所も……、ゲームの世界では道路などに置き換えている。

昔の「電車でGO!」は、協力会社以外、
例えば東急各線や東京モノレールと交差・JR東海の東海道新幹線と並走、
などがありました。

「他社に迷惑を掛けなければ、それでいい」のか?

現在は、直通運転等を除いては、「自社の車両・駅・施設を厳守」が必要です。


ネットを見てほしい。同業他社どころか、
「無関係では済まない、極めて不快な外国人画像・海外画像の巣窟」
と化している!
1990年代は絶対にあり得ないませんが……現在はこの通りです。
フランスの「TGV」やドイツの「ICE」が出てきても不思議ではない、といえます。


田舎者として一言。
「山手線」のゲーム内では、現実世界のJR東日本路線の説明もありますね。

京浜東北線の場合、「大宮〜東京〜横浜」とあります。
横浜駅以西のJR根岸線は外しています。JR根岸線は、京浜東北線と直通運転、に過ぎません。

黄色い電車の総武線は。
「千葉(正式:総武本線)〜御茶ノ水(ここから正式:中央本線)〜三鷹」
を「総武線」と呼んでいる一方で、
「正しくは『中央・総武線各駅停車』です」の説明があります。

田舎者の私が、黄色い電車の各駅停車のうち、
「御茶ノ水〜三鷹」を「総武線」と呼んでも、問題なさそう。(正しくは「中央線各駅停車」だが)

ただ、東京ドーム最寄りの「水道橋駅」などもこの線に該当するので、
「中央線」と呼ばれる中央線快速と区別するため、
同じ田舎者仲間の前では、「総武線」と呼んだほうが無難でしょうね。


※ゲームは「ゲームの世界」、現実世界の説明文章は「現実世界」と区別する必要があります。

80 :774ワット発電中さん:2022/05/29(日) 21:36:20.77 ID:GTafbNi3n
格闘ゲームのメルブラの最新の作品で、
Switch版・PS4版・Xbox One版・Steam版で発売された
「MELTY BLOOD:TYPE LUMINA」
について。

「初心者や中高年者でも遊べるよう、
キャラクターの必殺技は比較的操作しやすいボタンにしている」
〜これは、琥珀の「チャイナ琥珀」など、です。


メルブラと原作のアドベンチャー/ビジュアルノベル「月姫」は、
東京が舞台ですが、

現実世界へ配慮している。現実世界の企業名や地名は極力出さないよう努力している。
しかも、「大阪」「名古屋」「札幌」「福岡」など、全国各地の地名は一切出さない。
これも評価。


一般のフィクション作品の馬鹿どもは、現実世界への配慮をしないどころか、
現実世界を侮辱している、
無関係な地名を連呼する〜「地名ステマ」をしている、
福岡市を「博多」呼ばわりしている一方で
市名としては歴史が浅い北九州市は「北九州」と呼ぶ

………貴様ら、いい加減にしろ!と言いたいですね。


コンピュータゲームは架空の世界ですが、
一般のフィクション作品よりもずっとまとも、といえますね。

81 :774ワット発電中さん:2022/06/01(水) 11:59:49.01 ID:nIxlNVj+O
SwitchでYouTubeを見たところ
1980年代アイドルが出てきたが……、

司会者は郁恵と「なかもず男」!!

※この男を「なかもず男」と呼ぶ理由:
地下鉄なかもず駅&南海中百舌鳥駅がある政令市と同名、だから
正確には芸名の姓、二世タレントのため、芸名の姓は父親の芸名の姓、が由来


「なかもず男」は、若い頃に「ブラ○○○」の本名Mさんを恫喝した!

2人は同年代だが、
「なかもず男」は二世に加え、10代の頃から芸能界で活躍している一方、
Mさんは
……田舎の一般人の息子で、田舎の社会人&素人芸人出身、
右目を失明したため、素人時代+初期は眼帯を付けていた。
大物漫画家にスカウトされ、芸能界へ。大物漫画家は彼に自宅マンションなどを提供。

視覚障碍者といえども、人前でサングラスは無礼と判断し、
眼帯を着用していたと思われる。

ところが、事務所側は
「君は、サングラスを着用したほうが面白いよ。」とアドバイス。
やはり、タレントは目立つ服装等を要求されるか。

「芸としてサングラス着用」にもかかわらず、

この「なかもず男」は、

「先輩の俺の前では、サングラスを取れ!!」
「先輩の俺の前では、サングラスを取れ!!」
「先輩の俺の前では、サングラスを取れ!!」
「先輩の俺の前では、サングラスを取れ!!」
「先輩の俺の前では、サングラスを取れ!!」

と恫喝した!!


Mさんは、正当な理由でサングラスを着用したのだろう?

事務所の重鎮も、「M君のサングラスは芸の一つ、正当な理由だ」と認めるはず。

にもかかわらず、
同年代の若者で、「自分は二世タレント、相手は田舎者かつ軽度障碍者」
をいいことに恫喝するとは!!


私は、「なかもず男」は大嫌いだ!!

こいつが死んだら、
地下鉄なかもず駅&南海中百舌鳥駅と同じ関係といえる
札幌市厚別区の地下鉄新さっぽろ駅&JR千歳線新札幌駅の周辺でお祝いをする。

82 :774ワット発電中さん:2022/06/01(水) 12:13:21.85 ID:nIxlNVj+O
何度でも言う。年寄りの口癖と言われるのを承知のうえで。


某8のBASICでさえ、
文字定数・DATA命令・注釈文(REM/"’")の内容は尊重する必要がある、
某8の設計書にも「これらはアスキー形式です」と正式に定義されている。


100 PRINT "Score";S 'Score wo Hyouji

↑があったら、どうする?


"Score" や "Score wo Hyouji" という命令はないので、
Syntax error in 100 か?


"SCORE 100"
のように、勝手に大文字で表示する、リストも大文字に直す、か?


8ビット機ローエンドの某8でさえ、これらは絶対に許されないぞ。

文字定数や注釈文の内容は尊重すること。

人間でいえば、「役者が室内で帽子を被る役を演じる」
〜本人の行為ではない、に決まっているだろ!

文章・表記でいえば、
「望ましくない文章・表記も、引用文と固有名詞は、それを尊重する」
必要があるぞ。


某8未満のクズが多くなった。非常に不愉快だ。

83 :アスキー資料集:某8のDOS1のサンプルプログラム:2022/06/02(木) 20:22:45.71 ID:xuF4eeh/j
某8のシステム設計者・Jさんは、
アスキーの資料集のサンプルプログラムも担当しました。


DOS1からサブロムを呼ぶ場合、以下のM80用ソースリストを使いなさい、
と例示しました。


私は、Windows用の製品版Z80アセンブラを使用しています。
このアセンブラは、8ビット機用ではなく、本来はマイコン用です。

製品版Z80アセンブラの実名・会社名は一切出しません。
荒らされる原因になるから、です。

84 :アスキー資料集:某8のDOS1のサンプルプログラム【メイン前半】:2022/06/02(木) 20:26:56.56 ID:xuF4eeh/j
========================================

EXTRN CALSUB ;"CALSUB" はサブロムを呼ぶルーチン・別のソースリスト


CHGMOD EQU 00D1H ;サブロム - SCREENモードを変更
BEEP EQU 017DH ;サブロム - BEEP音を鳴らす、これはサブロムのルーチン
PROMPT EQU 0181H ;サブロム - BASICのプロンプト "Ok" を表示する
KNJPRT EQU 01BDH ;サブロム - PUT KANJIと同じ、BCにJISコード・Aは通常0

CALSLT EQU 001CH ;DOS  - インタースロットコール (IX,IY-h)
CHGET EQU 009FH   ;MAIN - 1文字入力待ち、A$=INPUT$(1) に相当
CHPUT EQU 00A2H ;MAIN - テキスト画面に1文字を表示する、PRINT"A" に相当
TOTEXT EQU 00D2H ;MAIN - 強制的にテキストモードにする、DOS1ではこれが必要

EXPTBL EQU 0FCC1H ;MAIN-ROM のスロット

GRPACX EQU 0FCB7H ;X - 今回は漢字表示で使用
GRPACY EQU 0FCB9H ;Y - グラフィック画面の文字表示の PRESET(X,Y) と同義

85 :アスキー資料集:某8のDOS1のサンプルプログラム【メイン後半】:2022/06/02(木) 20:27:35.45 ID:xuF4eeh/j
LD A,5
LD IX,CHGMOD
CALL CALSUB ;SCREEN5へ変更

LD HL,0
LD (GRPACX),HL
LD (GRPACY),HL ;PRESET(0,0)相当 〜参照点を(0,0)にする

LD BC,3441H ;"漢" のJISコード
XOR A
LD IX,KNJPRT
CALL CALSUB ;"漢" を表示

LD BC,3B7AH ;"字" のJISコード
XOR A
LD IX,KNJPRT
CALL CALSUB ;"字" を表示

LD IX,BEEP
CALL CALSUB ;BEEP音を鳴らす

LD IX,CHGET
LD IY,(EXPTBL-1)
CALL CALSLT ;1文字入力待ち 〜 A$=INPUT$(1) 相当

LD IX,TOTEXT
LD IY,(EXPTBL-1)
CALL CALSLT ;テキストモードに変更、DOS1では必要

LD IX,PROMPT
CALL CALSUB ;BASICのプロンプト "Ok" を表示する

LD A,0DH
LD IX,CHPUT
LD IY,(EXPTBL-1)
CALL CALSLT ;PRINT CHR$(13); に相当 = CRコードを出力

LD A,0AH
LD IX,CHPUT
LD IY,(EXPTBL-1)
CALL CALSLT ;PRINT CHR$(10); に相当 = LFコードを出力

LD IX,BEEP
CALL CALSUB ;BEEP音を鳴らす


RET

END

========================================

86 :アスキー資料集:某8のDOS1のサンプルプログラム【サブロム】:2022/06/02(木) 20:30:30.54 ID:xuF4eeh/j
========================================
; +0 INC SP
; +1 INC SP
; +2 LD IX,<サブロム entry>
; +6 NOP
; +7 JP EXTROM


PUBLIC CALSUB


CALSLT EQU 001CH
EXTROM EQU 015FH
NMI EQU 0066H ;Non-maskable interrupt
H.NMI EQU 0FDD6H ;Hook for NMI
EXPTBL EQU 0FCC1H


CALSUB:
EXX ;Save argument registers over setup
EX AF,AF'
LD HL,EXTROM
PUSH HL
LD HL,0C300H ;JP xxxx,NOP
PUSH HL
PUSH IX ;サブロム entry
LD HL,021DDH ;LD IX,xxxx
PUSH HL
LD HL,03333H ;INC SP,INC SP
PUSH HL
LD HL,0
ADD HL,SP
LD A,0C3H
LD (H.NMI),A
LD (H.NMI+1),HL
EX AF,AF'
EXX

LD IX,NMI
LD IY,(EXPTBL-1)
CALL CALSLT
EI

LD HL,10 ;Throw away the interface routine
ADD HL,SP
LD SP,HL
RET

END
========================================

87 :アスキー資料集:某8のDOS1のサンプルプログラム【説明】:2022/06/02(木) 20:43:32.91 ID:xuF4eeh/j
========================================

DOS1の環境からサブロムを呼ぶ場合は、以下のような特別な配慮が必要です。


    CALSUBのエントリ条件は、IXにアドレスを入れるだけです。
    スタックはページ0以外でなければなりません。
    割り込み禁止は必要ありません。
    終了後、NMIフックの解除は必要ありません。

 ここで問題となるのは、EXTROMに必要なIXレジスタの値が渡せないことです。
したがって、BIOS ROMが呼び出された後にIXがセットされ、
EXTROMにジャンプする必要があります。

 具体的には、スタック上に次のようなルーチンを用意し、
NMIのフックからジャンプさせるようにしておきます。
次に、BIOSのNMIエントリ(フックは用意されているが使用されない)を
インタースロットコールします。

========================================


明日猫さんによると。

「2」の場合、サブロムを呼ぶルーチンにバグがあるので、面倒な方法が必要、と発言しています。

「2+」「tR」では、DOS1/DOS2からサブロムを直接呼んでも問題ない、そうです。

ついでに。
「2+」以降は、
メインRAMのスロットは#3−0、ディスクのスロットは#3−xになり、
サブロムの問題や
「ディスクがゲームソフトやCALL拡張ルーチンよりも先に初期化」
の問題は解決した、とあります。

88 :774ワット発電中さん:2022/06/02(木) 21:01:16.65 ID:xuF4eeh/j
>>84-86の両者にいえること。

M80の場合、最初の行に ".z80" が必要です。

また、DOS1用のため、
メインルーチンの先頭アドレスは0100Hになります。


「COMファイル - 通信用語の基礎知識」より

>元々はCP/M-80で使われていた拡張子で、
>実アドレス0100Hより配置される
>プレーンなオブジェクトイメージを格納したものである。

>ファイルヘッダーを持たず、64Kiバイト以内
>(より正確には0100H〜FFFFHの範囲内に収まる必要がある)
>に限られ、これが常に一番最初から実行されるようになっている。

>CPUに、Z80を用いた某8のDOS1でも同一のものを採用した。
>某8のDOS1はCP/Mとの互換性を重視して設計されている。

89 :>>84-86 をBASICプログラム化、「Web某8」推奨:2022/06/03(金) 20:48:05.62 ID:5CT9RY+Gx
100 DEFINT A-Z:ON ERROR GOTO 260
110 IF PEEK(&H2D)=0 THEN PRINT "Doesn't work in this version!":BEEP:END
120 OPEN "command2.com" FOR INPUT AS #1:CLOSE:GOTO 140
130 OPEN "command.com" FOR INPUT AS #1:CLOSE
140 F$="TEST.COM"
150 OPEN F$ FOR OUTPUT AS #1:CLOSE
160 OPEN F$ AS #1 LEN=1
170 FIELD #1,1 AS A$
180 FOR I=1 TO 176
190 READ B$:B=VAL("&H"+B$)
200 B$=CHR$(B):LSET A$=B$:PUT #1,I
210 NEXT I:CLOSE
220 KEY 1,"_SYSTEM"+CHR$(13):KEY 2,"POKE &HF346,1"+CHR$(13)
230 KEY 3," "+LEFT$(F$,LEN(F$)-4)+CHR$(13)
240 IF PEEK(&HFCAF)<>1 THEN SCREEN 1
250 WIDTH 29:KEY ON:END
260 IF ERL=120 THEN RESUME 130
270 IF ERL=130 THEN PRINT "Insert the DOS1 system disk!":BEEP:END
280 ON ERROR GOTO 0
290 '
300 DATA 3E,05,DD,21,D1,00,CD,6E,01,21,00,00,22,B7,FC,22
310 DATA B9,FC,01,41,34,AF,DD,21,BD,01,CD,6E,01,01,7A,3B
320 DATA AF,DD,21,BD,01,CD,6E,01,DD,21,7D,01,CD,6E,01,DD
330 DATA 21,9F,00,FD,2A,C0,FC,CD,1C,00,DD,21,D2,00,FD,2A
340 DATA C0,FC,CD,1C,00,DD,21,81,01,CD,6E,01,3E,0D,DD,21
350 DATA A2,00,FD,2A,C0,FC,CD,1C,00,3E,0A,DD,21,A2,00,FD
360 DATA 2A,C0,FC,CD,1C,00,DD,21,7D,01,CD,6E,01,C9,D9,08
370 DATA 21,5F,01,E5,21,00,C3,E5,DD,E5,21,DD,21,E5,21,33
380 DATA 33,E5,21,00,00,39,3E,C3,32,D6,FD,22,D7,FD,08,D9
390 DATA DD,21,66,00,FD,2A,C0,FC,CD,1C,00,FB,21,0A,00,39
400 DATA F9,C9,00,00,00,00,00,00,00,00,00,00,00,00,00,00

90 :>>84-86 をBASICプログラム化、「Web某8」推奨:2022/06/03(金) 21:25:06.34 ID:5CT9RY+Gx
プログラムの説明。

【準備・BASICプログラムの入力】

「Web某8」を起動後、Aドライブのアイコンをクリックし、
"Add Boot Disk" で DOS1/DOS2システム の実験用ディスクイメージを作る。

DOS1用のため、「2+」または「2」モードを推奨。
「tR」のDOS2モードでも動作を確認……120行でDOS2モードのディスクを認めている。

PCの「Alt」+「B」でクリップボードを開き、BASICプログラムを貼り付ける。

ファイル名は140行〜"TEST.COM"、拡張子は ".COM" であれば、名前変更も可。

BASIC上で「BSAVEヘッダなしのベタファイル」を書き込む場合、
>>180->>210 の方法を使う。
今回はPUT命令で書き込みだが、GET命令で読み込みも可能。
1バイト目のレコード番号は "0" ではなく、"1" になるので注意。

ファンクションキー
F1:"_SYSTEM"+(CR) F2:"POKE &HF346,1"+(CR) F3:" TEST"+(CR)

BASICプログラムを実行すると、書き込みがあるので、
Aドライブのディスクのアイコンが黄色くなる。
不要な場合は破棄……これは実験用なので、保存する価値はないと思う。

240〜250行で SCREEN1:WIDTH29:KEYON に設定。この画面が見やすいと思う。

【実行】

F1キーに "_SYSTEM"+(CR) を入れたので、F1キーを押す。

ここで "Illegal function call" エラーが出たときは、
「DOS1なしで直接BASICを起動した」という意味なので、F2キーを押す。
ディスクにシステムファイルがあれば、DOS1へ移行可能。

DOS1へ移行すると、プロンプト
A>■
が表示される。

ここで F3キーを押すと、
DOS1からサブロムを呼ぶ実験プログラムを実行する。

F3キーを連打すると、DOS1のエラーが出る可能性があるので、
先頭に空白1つを追加した。


【実験プログラムの内容について】

1.SCREEN5へ移行。サブロムのルーチンを使用。
2.参照点を(0,0)に設定。ワークエリアを書き換える。
3.サブロムのPUT KANJI相当ルーチンで「漢字」と表示。
4.サブロムのBEEP音ルーチンでBEEP音を鳴らす。
5.1文字入力待ち。A$=INPUT$(1) に相当。メインロムのルーチン。
6.強制的にテキストモードに戻す。メインロムのルーチン。DOS1では必要。
7.サブロムのプロンプト表示ルーチンでBASICのプロンプト "Ok" を表示する。
8.メインロムの文字出力ルーチンで「改行 = CRコード+LFコード」を出力する。
9.サブロムのBEEP音ルーチンでBEEP音を鳴らす。これで終了。

91 :本当のBASICプログラム:2022/06/03(金) 22:23:14.35 ID:5CT9RY+Gx
10 DEFINT A-Z:SCREEN 5
20 PUT KANJI(0,0),&H3441:PUT KANJI STEP(0,0),&H3B7A
30 BEEP:A$=INPUT$(1)
40 DEFUSR=&HD2:A=USR(0)  'TEXT Mode
50 GOSUB 100  'BASIC Prompt
60 PRINT:PRINT  'CR+LF * 2
70 BEEP
80 END
90 '
100 A$="DD218101CD5F01C9":AD=&HF55E
110 FOR I=0 TO 7
120 POKE AD+I,VAL("&H"+MID$(A$,I*2+1,2))
130 NEXT I
140 DEFUSR=AD:A$=USR("")
150 RETURN

92 :本当のBASICプログラム:2022/06/03(金) 22:36:03.02 ID:5CT9RY+Gx
BASICのプロンプト表示〜通常 "Ok" は
短いマシン語プログラムが必要、
引数に "LD IX,サブロムのアドレス" があるから。

また、プロンプト表示ルーチンのように、
「一部のBIOSルーチンはUSR関数の引数が文字型」
がある、と判明。


40行の「強制的にテキストモードに戻す」ルーチン。
グラフィックモード移行直前のテキストモードに戻る。
SCREEN1からグラフィックモードへ移行した場合、SCREEN1に戻る。
グラフィックモードでINPUT命令を実行したときも、内部でこのルーチンが実行される。

漢字BASICでも使える。
SCREEN1やSCREEN0で漢字テキストモードへ
……よりも、BIOSの00D2h(TOTEXT)が望ましい。
SCREEN1やSCREEN0の場合、WIDTH〜文字幅が変わる可能性があるうえ、
_ANKで通常モードへ戻ったときのテキストモードまで変わる。


「Web某8」の場合、CMOS=バッテリーバックアップがないので、
SET PROMPT命令でプロンプト変更、SET BEEP命令でBEEP音変更
の実験をしてもいいと思う。

SET PROMPT "READY"
SET BEEP 4

……など。

93 :アマチュアは、M80・某8のDOS1・CP/M・リンクに関わらないほうがいい:2022/06/03(金) 23:29:42.77 ID:5CT9RY+Gx
某8の残存ユーザーで、
「M80のORG命令を使いこなせない初心者を罵倒している」
奴がいる!!


>コード相対って何?

>    「コード相対モードは実行時にメモリ領域の書き換えの可能性がないプログラムについて指定します。
>したがって ROM / PROM 上に置くこともできます」(115頁)

>結論から言うと、ロムカートリッジを作る人以外は特に意識する必要なし。
>ついでに言うなら実行アドレスはL80の方で指定するのでORG命令も通常使いません。
>もちろん ASEG の場合はORG命令が必要ですが、
>ASEG をどうしても使う必要がある、というパターンは非常に限られています。
>BASIC の BLOAD で扱うファイルを作るときでさえ使いません。
>"「CSEGは某8版・M-80のデフォルトのモード」"(138頁)ですので、
>通常M80ではORG命令は使うはずがないということになります。
>M80がうまく使えないという人の中でORG命令を書いてる人は直ちにそれを削除すること。命令。

>それはさておき。
>CSEG , DSEG といった命令を指定しようとしまいとその後に書くプログラムやデータに特定の制限がつけられるわけではありません。
>また CSEG , DSEG を指定しても、L80で /P や /D を指定しなければ CSEG と DSEG は全く区別無しで扱われます。

94 :774ワット発電中さん:2022/06/03(金) 23:50:15.15 ID:5CT9RY+Gx
PC-8001時代、1980年〜1981年の雑誌の連続投稿者として活躍した
「芸○京人」さん。

雑誌の連続投稿者時代は、高等教育機関の学生でした。
彼が活躍したから、ドラクエのメンバーが集まり、
1986年にファミコン版のドラクエ1作目が発売された……

将棋ソフト開発者の方が、音楽家の故・椙山先生と交流があったため、
椙山先生がドラクエシリーズの音楽を担当しました。

「芸○京人」さんと将棋ソフト開発者の方も、ドラクエに貢献したといえます。


1980年代半ば、新人の「先生」になってからは、
アルバイトでエニックスのPC-8001mkIIゲーム・PC-8801シリーズゲームの
プログラマを務めました。

本業で米国留学を機に、8ビット機からは完全引退・卒業し、
以降はPC-9801などの一般ユーザーになったそうです。


「芸○京人」さんの場合、Z80のマシン語プログラムは
ハンドアセンブル・またはシンプルなアセンブラで開発しました。

CP/MのM80のような、高度なアセンブラは、彼には必要ありませんでした。

BASICモードのマシン語限定のため、
複数のソースプログラムのリンクやC言語とのリンクなどは、必要ありません。
疑似命令"ORG"が使える(ASEGで宣言・定義は不要)、シンプルなアセンブラが適しています。

95 :774ワット発電中さん:2022/06/04(土) 00:15:17.48 ID:6hyzqn5Io
PC-6001シリーズと某8のプログラムで、高度なプログラムや
「勝手移植」を作る、某改造さんについて。


アセンブラ初心者向けの解説、といえば、それまでですが。

某改造さんは、シンプルなMS-DOS版 フリーのZ80アセンブラ「ZASM」をすすめています。
Windows10/11で動作させるためのツールも紹介しています。

私がツールを当てたところ、ロングファイルネームも使えるようになった
ことに気付きました。"8.3"形式にこだわる必要はない、のです。


もちろん、M80用のマクロなどは未サポートです。

しかし、ORG疑似命令が使えるうえ、
ソースリストを直接バイナリファイルやHEXファイルに変換できる
〜「ハンドアセンブルを自動化」レベルのため、これが適切といえます。


PC-6001シリーズや某8のBASICモードで動くマシン語プログラムは、
これが適切では、と思います。


私は、CALL拡張命令の作成・DOS1用のプログラム作成では、
M80マクロが使えるWindows版の市販アセンブラを使用しています。
アセンブルやリンカの作業は、M80よりもずっと使いやすい、と感じます。

しかし、シンプルなマシン語プログラムは「ZASM」を使用しています。


某改造さんについて。
彼本人も、「ZASMで開発しています」と発言していますが……。


ただ、彼はCALL拡張命令を作る、DOS1用のプログラムを作る
……高度なプログラムも作っています。

DOS1のプログラムの場合、
セガのゲーム機ソフトを某8に勝手移植で使っているみたい、です。
某8の市販ソフトのアドレスと、セガのゲーム機のアドレスは、全く違います。
だから、某8では「全域がRAMになる」DOS1モードで動作させる、のですね。

結論をいえば、某改造さんも高度なプログラムでは、
「M80やWindows製品版など、高機能なZ80アセンブラで開発している」
と思われます。

96 :インタープリタの406Fh:ERROR命令相当の実験:2022/06/04(土) 00:39:15.53 ID:6hyzqn5Io
エラー番号のEレジスタが0の場合、暴走すると判明しました。

BASICの起動直後の実験結果です。
Eレジスタに0は、ないと思われます。


>某8 BASIC version 4.0 【Web某8「tR」】
>Copyright 1990 by MS
>25271 Bytes free
>Disk BASIC version 2.01
>Ok

>DEFUSR=&H406F
>Ok

>POKE0,USR(0)
>Unprintable error
>Ok

>?ERR;"(";HEX$(ERR);"h)"
> 151 (97h)
>Ok

【A%=USR(0%) / A!=USR(0!) / A#=USR(0#)
……数値型はいずれも Eレジスタ=151 (97h) と思われる】


>A$=USR("")
>Unprintable error
>Ok

>?ERR;"(";HEX$(ERR);"h)"
> 122 (7Ah)
>Ok

【文字型は Eレジスタ=122 (7Ah)】


【「初代」+ディスクなし・「2」・「2+」・「tR」のいずれも同じ】

97 :774ワット発電中さん:2022/06/09(木) 00:41:20.01 ID:7ilN+QWcJ
前身の5chスレでも触れたけど……


2022年時点では、
「子ども」表記は厳禁、「こども」表記も避けるべき、
と断言する。

※「子ども」表記厳禁は2030年以降と予想していたが、想像以上に早かった。


知恵遅れ袋のキチ○イ・某8のキチ○イ・阪急歌劇団の一部のキチ○イ
などに攻撃されるが、はっきり言う。


2022年時点で「子ども」表記が許されるのは、以下の法人等くらいだ、と断言する。

1.札幌市役所:大規模自治体のため
2.日本共産党:大規模野党のため
3.児童関係の大企業〜例:「アンパンマン」の著作権者の出版社など


「子ども」表記は、1950年代前半に作られた。
明治時代生まれの当時の大人たちが作った。
彼らは、子供の頃・10代の頃、大人たちから激しい虐待などを受けた。
「供」は、目下の者を見下す〜「大人が子供を見下す」意がある。

1940年代は「こども」表記〜例:1948年制定の「こどもの日」など〜があったが、
1950年代に「子ども」表記を作った。「子」は問題ない、と強調したのでは。

しかし、このままでは「子ども」表記を普及させることはできない。

教育漢字の「供」の履修学年を6年にした。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

大部分の小学生は、未履修である漢字「供」を書くな、と命じた。


現在は……「子供」は普通名詞ではなく、専門用語とみなし、
大部分=5年以下の小学生でも「子供」表記が無難では。

固有名詞〜北海道の地名に至っては、
「小"樽"」「"函"館」「"旭"川」「"釧"路」「室"蘭"」「"苫"小牧」「留"萌"」
……常用漢字外を含む地名が非常に多い。
小学生でも、固有名詞はこれらを漢字で書いても問題ない。
「子供」も、北海道の地名と同等の扱いが望ましいのでは。

98 :774ワット発電中さん:2022/06/09(木) 00:52:59.80 ID:7ilN+QWcJ
札幌市某区にある小学校は、私の母校の旧A小学校と旧K小学校が統合し、
W小学校になった。

ところが、他の札幌市の統合校は、この時代にもかかわらず
新しい校歌歌詞に「子ども」表記を入れる作詞者〜ボンクラ校長が多すぎる。

そのため、私は前身校の卒業生=OBの立場でW小学校関係者に対し、
校歌に「子ども」表記を入れるな、と強い要望を出した。

W小学校校長はこれを聞き入れ、校歌歌詞の言葉は「W小学校の子」を採用
〜他の統合校の二の舞を阻止した。

歌詞には著作権があるので、変更は非常に難しい。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



現在は1930年代生まれの人物も、男性に限定すると、大部分が亡くなった。
明治時代生まれの人物の子弟・弟子・部下に相当する。

彼らは、父親・師匠・上司から「子ども」表記をしなさい、と厳命されたと思われる。

例:「アンパンマン」作者〜1919年生まれ、藤子Aさん〜1934年生まれ、
宗教評論家の「ひろ○○○」=本名:増原○○さん・本業は学者〜1936年生まれ
………など。
例示した人物は、いずれも文章で「子ども」表記をしていた。


彼らの大部分が亡くなったため、
現在の人々は、本気で「子ども」表記追放、
必要以上に「子供」表記多用……といえる。
「大人も子供も」は……ステマレベルですよ。


一つだけ、注文を出す。

成人の子〜息子・娘は、「子」「子女」が望ましい、と思う。

説明不要だが、「子供」は侮辱語でもある。

成人の子を侮辱するのは、おかしいだろう?

99 :774ワット発電中さん:2022/06/09(木) 01:32:47.13 ID:7ilN+QWcJ
1980年代の8ビット機のマニュアル筆者・8ビット機の書籍著者は、
現在では考えられないほど、まともな方が多い。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

小中高生のユーザーに対しては、「子ども」「子供」のいずれも使用していない。
必要なときは、「中学生」のように範囲を限定している。


コンピュータの書籍、理系の書籍に、「子ども」「子供」は必要ないだろう!


当時は、まともな筆者・著者が多かった。現在では絶対にあり得ない。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


現在のライターやネットの連中は、
当時は非常に高価だったパソコン本体・周辺機器の世界でも

「子供」「子供たち」を多用する馬鹿どもが多すぎる!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

低価格かつローエンド機種の某8は、わかる。

けど、PC-8801シリーズやPC-9801で、なぜ「子供」「子供たち」を多用する?


もう一つ言っておく。

1980年代のベーマガに、アドベンチャーゲームの攻略記事を書いたライターがいた。
彼は、当時20代前半の大学生。
ベーマガの読者の大部分は、中高生と思われる。

彼は、中高生の読者たちを「子供」「子供たち」と侮辱したことは、一度もないはず。

20代前半の大学生には、絶対に許されない行為だ。彼は、それを弁えていた。

100 :774ワット発電中さん:2022/06/09(木) 01:42:19.34 ID:7ilN+QWcJ
これを言ったら終わりだけど。


1980年代前半は……

1.雑誌の連続投稿者として活躍した「芸○京人」さん〜当時は20代後半、PC-8001ユーザー

2.当時の本職は雑誌ライターだったドラクエ堀井〜当時は20代後半、廉価機種のPC-6001ユーザー


8ビット機でさえ、大学生よりも年上のユーザーが多かった。

彼らが若い頃は、パソコン自体がなかった。これを言ったらおしまいだが。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

総レス数 834
1026 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★