X

【IDなし】MSXスレッド Part 46【安全】©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/02/16(火) 10:22:40.05
前スレッド

MSXスレッド Part 45 [転載禁止](c)2ch.net
http://hanabi.2ch.net/test/read.cgi/i4004/1440035009/
2020/06/27(土) 15:13:24.91
コマンドを作ってみた。下記プログラムを実行後、
CMD MSX で SCREEN 1.5 に、CMD BOLD でフォントを太字にできます。
暴走したらごめん。w

100 CLEAR 256,&HE000
110 AD=&HE000
120 READ CD$:IF CD$<>"END" THEN POKE AD,VAL("&H"+CD$):AD=AD+1:GOTO 120
130 DEFUSR=&HE000:A=USR(0)
140 ' CMD MSX
150 ' CMD BOLD
999 END
1000'
1010 DATA 3A,0D,FE,FE,C9,C0,21,1B,E0,11,0D,FE,01,05,00,ED
1020 DATA B0,C9,00,00,00,00,00,00,00,00,00,F1,CD,20,E0,C9
1030 DATA 11,89,FD,7E,FE,20,20,03,23,18,F8,47,D6,41,38,0B
1040 DATA D6,1A,30,07,78,12,13,23,7E,18,F0,AF,12,00,00,00
1050 DATA E5,DD,21,00,E1,01,10,00,DD,7E,00,FE,00,28,1F,DD
1060 DATA E5,D1,21,89,FD,1A,FE,00,28,07,BE,20,0D,13,23,18
1070 DATA F4,E1,DD,5E,0E,DD,56,0F,D5,C9,DD,09,18,DA,E1,C9
1080 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1090 DATA E5,CD,6F,00,CD,7E,00,06,00,0E,04,CD,47,00,3A,E9
1100 DATA F3,4F,3A,EA,F3,E6,0F,CB,21,CB,21,CB,21,CB,21,B1
1110 DATA 21,00,20,01,00,18,CD,56,00,E1,C9,00,00,00,00,00
1120 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1130 DATA E5,01,00,08,21,00,00,CD,4A,00,57,1F,B2,CD,4D,00
1140 DATA 23,0B,78,B1,20,F1,E1,C9,00,00,00,00,00,00,00,00
1150 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1160 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1170 DATA 4D,53,58,00,00,00,00,00,00,00,00,00,00,00,80,E0
1180 DATA 42,4F,4C,44,00,00,00,00,00,00,00,00,00,00,C0,E0
1190 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
9999 DATA END
2020/06/27(土) 17:29:04.38
SCREEN1.5〜マシン語がないと厳しいですね?

CMDコマンドは、MIAのマシン語入門のモニタで覚えた←テープ専用
バッ活でもCMDコマンドの使用例があった


メモリの上限について〜WebMSXの場合
? HEX$(PEEK(&HFC4A)+PEEK(&HFC4B)*256)

MSX2+ 通常 DE79
MSX2+ CTRL E48F
MSX2+ SHIFT F380
turboR 通常 E5A8
turboR CTRL E5BD

E000以降は、MSX2+の場合CTRLキーが必須では?
2020/06/27(土) 18:36:47.07
F380Hまでがユーザーエリアだね。
ただ2DDが2台あるとDE77H以降はダメっぽいなぁ。
2020/06/27(土) 20:11:57.73
アドレス修正してみた。
CMD FILL n ってのも追加してみた。例:CMD FILL ASC("A")

100 CLEAR 256,&HD000
110 RESTORE 1000:AD=&HD000
120 READ CD$:IF CD$<>"END" THEN POKE AD,VAL("&H"+CD$):AD=AD+1:GOTO 120
130 RESTORE 2000:AD=&HDA00
140 READ CD$:IF CD$<>"END" THEN POKE AD,VAL("&H"+CD$):AD=AD+1:GOTO 140
150 DEFUSR=&HD000:A=USR(0)
160 END
1000 DATA 3A,0D,FE,FE,C9,C0,21,1B,D0,11,0D,FE,01,05,00,ED
1010 DATA B0,C9,00,00,00,00,00,00,00,00,00,F1,CD,20,D0,C9
1020 DATA 11,89,FD,7E,FE,20,20,03,23,18,F8,47,D6,41,38,0B
1030 DATA D6,1A,30,07,78,12,13,23,7E,18,F0,AF,12,00,00,00
1040 DATA E5,DD,21,00,DA,01,10,00,DD,7E,00,FE,00,28,1F,DD
1050 DATA E5,D1,21,89,FD,1A,FE,00,28,07,BE,20,0D,13,23,18
1060 DATA F4,E1,DD,5E,0E,DD,56,0F,D5,C9,DD,09,18,DA,E1,C9
1070 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1080 DATA E5,CD,6F,00,CD,7E,00,06,00,0E,04,CD,47,00,3A,E9
1090 DATA F3,4F,3A,EA,F3,E6,0F,CB,21,CB,21,CB,21,CB,21,B1
1100 DATA 21,00,20,01,00,18,CD,56,00,E1,C9,00,00,00,00,00
1110 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1120 DATA E5,01,00,08,21,00,00,CD,4A,00,57,1F,B2,CD,4D,00
1130 DATA 23,0B,78,B1,20,F1,E1,C9,00,00,00,00,00,00,00,00
1140 DATA CD,1C,52,E5,21,00,18,01,00,03,CD,56,00,E1,C9,00
1150 DATA END
2000 DATA 4D,53,58,00,00,00,00,00,00,00,00,00,00,00,80,D0
2010 DATA 42,4F,4C,44,00,00,00,00,00,00,00,00,00,00,C0,D0
2020 DATA 46,49,4C,4C,00,00,00,00,00,00,00,00,00,00,E0,D0
2030 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
2040 DATA END
2020/06/27(土) 21:09:50.62
https://imgur.com/v1keR1T

ルーチン1:USR関数の引数で指定したアドレスに、左右反転用テーブルを作成
      VARPTR(A%(0))で配列変数だが……通常のアドレスも可能

ルーチン2:SCREEN1に256文字表示

ルーチン3:SCREEN1のフォントを左右反転、ルーチン1と同じ引数を使用
      ルーチン1で左右反転用テーブルを作成する必要がある

ルーチン1とルーチン2は "RET" を削除、すべて連続実行
2020/06/28(日) 00:26:20.67
10 SCREEN 1:WIDTH 32:CLS:KEY OFF
20 DEFINT A-Z
30 DIM CD(7)
40 AD=&H1800:FOR CD=0 TO 255:VPOKE AD,CD:AD=AD+1:NEXT CD
50 FOR AD=&H0 TO &H7FF STEP 8
60 FOR OF=0 TO 7:CD(7-OF)=VPEEK(AD+OF):NEXT OF
70 FOR OF=0 TO 7:VPOKE AD+OF,CD(OF):NEXT OF
80 NEXT AD
90 LOCATE 0,8:LIST
2020/06/28(日) 01:09:43.33
10 SCREEN 1:WIDTH 32:CLS:KEY OFF
20 DEFINT A-Z
30 FOR AD=ASC("0")*8 TO ASC("9")*8+7
40 READ DT$:VPOKE AD,VAL("&H"+DT$)
50 NEXT AD
60 PRINT "0123456789"
70 END
100 DATA 7C,82,82,00,82,82,7C,00
110 DATA 00,02,02,00,02,02,00,00
120 DATA 7C,02,02,7C,80,80,7C,00
130 DATA 7C,02,02,7C,02,02,7C,00
140 DATA 00,82,82,7C,02,02,00,00
150 DATA 7C,80,80,7C,02,02,7C,00
160 DATA 7C,80,80,7C,82,82,7C,00
170 DATA 7C,82,82,00,02,02,00,00
180 DATA 7C,82,82,7C,82,82,7C,00
190 DATA 7C,82,82,7C,02,02,7C,00
2020/06/28(日) 15:48:29.38
「上下反転」のみマシン語化、
FOR I=7 TO 0 STEP -1:A=ABS(I-15):NEXT I
のつもり
ワークエリアが16バイト必要、USR関数で指定

100 DEFINT A-Z:AD=&HF55E:DEFUSR=AD
110 A$="1810":GOSUB 210:AD=AD+16
120 A$="21F8F77E5F237E570000000000000000":GOSUB 210
130 A$="0608D5E10578E5856F4E78D60FED44E1":GOSUB 210
140 A$="856F710410ECC9":GOSUB 210
150 SCREEN 1:WA=&HF560:PRINT "HIT ANY KEY ";:A$=INPUT$(1)
160 A=ASC(A$):IF A>31 THEN PRINT A$ ELSE PRINT CHR$(1)+CHR$(64+A)
170 FOR I=0 TO 7:POKE WA+I,VPEEK(ASC(A$)*8+I):NEXT I
180 A=USR(WA)
190 FOR I=0 TO 7:VPOKE ASC(A$)*8+I,PEEK(WA+8+I):NEXT I
200 END
210 A=LEN(A$)\2:FOR K=0 TO A-1
220 POKE AD+K,VAL("&H"+MID$(A$,K*2+1,2)):NEXT K:AD=AD+A:RETURN
2020/06/28(日) 18:06:02.87
90度回転ができると面白いけど処理が面倒そうだ
2020/06/28(日) 18:50:04.56
左右ができとれば後は上下だけでええやん
2020/06/28(日) 19:47:03.53
くるくる回転させてみたいw
0バイト目の0ビット目を7バイト目の0ビット目に
0バイト目の1ビット目を6バイト目の0ビット目に
ってやんないといけないから相当重い処理になるよね
2020/06/28(日) 20:43:32.16
90度回転をBASICで作る場合、
配列変数はA(63)〜一次元にする
決してA(7,7)〜二次元は使わない
2020/06/28(日) 21:22:19.13
作ったw
turboRですらかなり遅い・・・

100 SCREEN 1:WIDTH 32:CLS:KEY OFF:DEFINT A-Z
110 AD=&H1800:FOR CD=0 TO 255:VPOKE AD,CD:AD=AD+1:NEXT CD
120 DIM WK(7)
130 FOR CD=0 TO 255
140 AD=CD*8:WB=&B00000001:FOR I=0 TO 7:WK(I)=0:NEXT I
150 FOR I=0 TO 7
160 IX=7:RB=&B00000001
170 FOR B=0 TO 7
180 IF VPEEK(AD) AND RB THEN WK(IX)=WK(IX) OR WB
190 RB=RB*2:IX=IX-1
200 NEXT B
210 AD=AD+1:WB=WB*2
220 NEXT I
230 AD=CD*8
240 FOR I=0 TO 7:VPOKE AD,WK(I):AD=AD+1:NEXT I
250 NEXT CD
260 LOCATE 0,8
2020/06/28(日) 21:34:19.49
140 AD=CD*8:WB=&B10000000:FOR I=0 TO 7:WK(I)=0:NEXT I
160 IX=7:RB=&B10000000
190 RB=RB/2:IX=IX-1
210 AD=AD+1:WB=WB/2

この修正で左回転
こっちの方が見やすいね
2020/06/28(日) 21:52:14.23
>>713
本当に遅い……

turboR+べーしっ君だと速くなる
べーしっ君用に修正
DEFINT A-ZとDIMは、_TURBO ONの直後に書く

100 SCREEN 1:WIDTH 32:CLS:KEY OFF
110 _TURBO ON
120 DEFINT A-Z:DIM WK(7):AD=&H1800:FOR CD=0 TO 255:VPOKE AD,CD:AD=AD+1:NEXT CD
(以降は同じ)
2020/06/28(日) 22:29:39.55
左回転でプログラムリストを表示するとマトリックスっぽいかも
2020/06/28(日) 23:45:38.06
1 'save"UD_REV.BAS",A
100 DEFINT A-Z:AD=&HF55E:DEFUSR=AD:DEFUSR1=&HF5C0:WA=&HF560
110 A$="1810":GOSUB 260:AD=AD+16
120 A$="21F8F77E5F237E570000000000000000":GOSUB 260
130 A$="210000010800E5D5CD5900D1E1E50000":GOSUB 260
140 A$="0608D5E10578E5856F4E78D60FED44E1":GOSUB 260
150 A$="856F710410EC0000":GOSUB 260
160 A$="D5E1D1010800D5E509CD5C00D1E10108":GOSUB 260
170 A$="00093E08BC20C7C9":GOSUB 260
180 'F5C0
190 A$="06002618AF6FCD4D003C10F9C9":GOSUB 260
200 SCREEN 1:WIDTH 32:KEY OFF
210 A=USR1(0):LOCATE 0,8:TIME=0:A=USR(WA)
220 LOCATE 0,20:PRINT TIME/60;"sec"
230 DEFUSR2=&H156:A=USR2(0):BEEP
240 A$=INKEY$:IF A$="" THEN 240
250 A=USR(WA):END
260 A=LEN(A$)\2:FOR K=0 TO A-1
270 POKE AD+K,VAL("&H"+MID$(A$,K*2+1,2)):NEXT K:AD=AD+A:RETURN
2020/06/29(月) 04:22:06.95
左回転マシン語化

100 SCREEN 1:WIDTH 32:COLOR 15,4,7:CLS:KEY OFF
110 DEFINT A-Z
120 AD=&H1800
130 FOR CD=0 TO 255:VPOKE AD,CD:AD=AD+1:NEXT CD
140 CLEAR 256,&HD000
150 AD=&HD000
160 READ DT$:IF DT$<>"END" THEN POKE AD,VAL("&H"+DT$):AD=AD+1:GOTO 160
170 DEFUSR=&HD000:A=USR(0)
180 IF INKEY$="" THEN 180
190 COLOR 12,0,0
200 CLS:LIST 100-200
1000 DATA AF,F5,CD,20,D0,F1,3C,FE,00,20,F6,C9,00,00,00,00
1010 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
1020 DATA 21,80,D0,06,08,36,00,23,10,FB,00,00,00,00,00,00
1030 DATA 6F,26,00,CB,25,CB,14,CB,25,CB,14,CB,25,CB,14,E5
1040 DATA 06,80,CD,4A,00,23,0E,80,11,87,D0,F5,A1,28,03,1A
1050 DATA B0,12,F1,1B,CB,39,30,F3,CB,38,30,E6,D1,21,80,D0
1060 DATA 01,08,00,CD,5C,00,C9,00,00,00,00,00,00,00,00,00
1070 DATA END
2020/06/29(月) 17:34:17.74
スプライトも回転できれば4方向分のキャラ作らなくて済むね
16x16ドットだと難しいかな
2020/06/29(月) 18:47:28.26
左回転〜マシン語は速い、と感心

今日は休むけど、>>700の左右反転
〜上下反転と同じ基準で作り直す、
アドレスは上下反転の次にする予定
A(0〜255)に反転データのテーブル、これは廃止
こんなのに512バイトを消費してはかなわない、から

ただ、BASICではA(0〜255)の反転テーブルが必要、と強調
2020/06/29(月) 19:38:46.94
BASICは計算を入れると極端に遅くなっちゃうね
変換テーブルは良いアイデアかも
2020/06/30(火) 11:51:10.80
100 SCREEN 1,2:WIDTH 32:CLS:KEY OFF
110 DEFINT A-Z
120 '
130 FOR N=0 TO 1
140 SP$=""
150 FOR I=0 TO 31:READ CD$:SP$=SP$+CHR$(VAL("&H"+CD$)):NEXT I
160 SPRITE$(N)=SP$
170 NEXT N
180 '
190 X=120:Y=176:MX=0:MY=-16:MF=0
200 '
210 PUT SPRITE 0,( X, Y),15,0
220 PUT SPRITE 1,(MX,MY),15,1
230 '
240 ST=STICK(0)
250 IF ST=7 THEN X=X-4:IF X< 0 THEN X= 0
260 IF ST=3 THEN X=X+4:IF X>240 THEN X=240
270 '
280 ST=STRIG(0)
290 IF ST=-1 AND MF=0 THEN MX=X:MY=Y:MF=1
300 IF MF=1 THEN MY=MY-8:IF MY<-16 THEN MF=0
310 '
320 GOTO 200
1000 '
1010 DATA 01,02,04,04,07,04,04,00,72,22,27,22,27,22,72,00
1020 DATA 00,80,40,40,C0,40,40,00,9C,88,C8,88,C8,88,9C,00
1030 DATA 01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00
1040 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
2020/06/30(火) 20:37:28.23
1 'save"URLD_REV.BAS",A
100 DEFINT A-Z:DIM AD(1),WA(1):DEFUSR2=&H156
110 AD=&HF580:AD(0)=AD
120 WA(0)=&HF560:WA(1)=&HF570
130 A$="21F8F77E5F237E570000000000000000":GOSUB 340
140 A$="210000010800E5D5CD5900D1E1E50000":GOSUB 340
150 A$="0608D5E10578E5856F4E78D60FED44E1":GOSUB 340
160 A$="856F710410EC0000D5E1D1010800D5E5":GOSUB 340
170 A$="09CD5C00D1E1010800093E08BC20C7C9":GOSUB 340
180 AD(1)=AD:'F5D0
190 A$="21F8F77E5F237E570000000000000000":GOSUB 340
200 A$="210000010800E5D5CD5900D1E1E50000":GOSUB 340
210 A$="D5E1D53E08835F010800EDB0D10608D5":GOSUB 340
220 A$="E10578C608856F7EC5060807CB1910FB":GOSUB 340
230 A$="7977C10410E90000D5E1D1010800D5E5":GOSUB 340
240 A$="09CD5C00D1E1010800093E08BC20B7C9":GOSUB 340
250 DEFUSR1=AD:'F630
260 A$="06002618AF6FCD4D003C10F9C9000000":GOSUB 340
270 SCREEN 1:WIDTH 32:KEY OFF:A=USR1(0)
280 A$=INKEY$:IF A$="" THEN 280 ELSE A=ASC(A$)
290 IF A=30 OR A=31 THEN R=0:GOTO 310
300 IF A=28 OR A=29 THEN R=1 ELSE 330
310 LOCATE 0,8:DEFUSR=AD(R):TIME=0:A=USR(WA(R)):T!=TIME/60
320 LOCATE 0,20:PRINT USING "TIME:##.####";T!:GOTO 280
330 A=USR2(0):LOCATE 0,20:PRINT SPC(20);CHR$(13);:END
340 A=LEN(A$)\2:FOR K=0 TO A-1
350 POKE AD+K,VAL("&H"+MID$(A$,K*2+1,2)):NEXT K:AD=AD+A:RETURN
724723
垢版 |
2020/06/30(火) 21:02:17.37
カーソルキー 上or下:上下反転
カーソルキー 左or右:左右反転
その他のキー:終了


ワークエリア(今回は、上下がF560H〜・左右がF570H〜)
https://imgur.com/a/TUDZ0uQ


INPUT命令のバッファにマシン語
〜CLEAR命令で領域を確保する必要がない、
RAM8KBのカシオPV-7でも動くと思う……長所はあるが、

暴走の危険が高い、作成者はバッファが壊れる条件を知る必要がある

マシン語プログラム自体はJR系命令〜相対命令のみなので
D020Hなどに移してもいいと思う

ワークエリアはUSR関数で指定→DEレジスタに代入したが(130行・190行)
DEレジスタに任意のワークエリアを指定するよう書き換えるといいと思う
プログラム本体では、DEレジスタを絶対に壊さないこと

最後に……
VRAMのBIOSは、0059H(VRAM→RAM)・005CH(RAM→VRAM)
8バイト単位で転送、
全レジスタが壊れるが、BCは常に8なので、HLとDEの保存に努めればよい
2020/06/30(火) 21:06:01.32
いい加減ウザい
2020/06/30(火) 21:23:47.79
ここにプログラムを貼る、本当の理由は

「梅」だ、と言っておく

MSXスレ、いくつあると思っているんだ?
他の板にも重複スレはあるけど、
MSXスレほどひどいところもないぞ?

ただ、一人でプログラム梅をやると、
「罵倒」では済まないほどの攻撃を受けるので、

同類の梅仲間が絶対に必要
2020/06/30(火) 21:35:12.59
個人的に思うこと

PC-6001やぴゅう太など、マイナーな機種のユーザーは
マイナー機種に専念したほうがいいと思う

MSXとPC-9801は極めて危険
「中途半端に普及した」
これがまずい

ファミコンでも、
スーパーマリオ・ドラクエ・FF・ボンバーマン・桃鉄
以外のゲームを出すと、荒らされると思っていい
燃えプロの黒カートリッジ・ハイパーオリンピックの志村けん版
・ハッカーインターナショナルのゲーム
などの話題は、極めて危険!

どの機種も、ヤフオクでは
海外版や非売品が多いけどね
2020/06/30(火) 21:41:37.97
もともと荒れてたスレに何を期待してるのかw
2020/06/30(火) 21:53:26.92
MSXスレ Part46は重複どころではない、
三重複だったが?

北海道某市出身・札幌のレトロPCショップ経営者
とその一味のAA荒らしがひどかった、
以前は、すべてのMSXスレにAA荒らしが貼られた

MSXスレッド Part 49が現行スレ?
Part 51があったけど、気のせいか?
2020/06/30(火) 21:58:35.00
他の世界について

MSX出身の奴が、あちこちで悪事を働いたので、
その世界のスレが荒らされた→潰された

MSX出身といっても、
MSXのBIOSルーチンやワークエリアの一覧表を作る、
MSXのBASICプログラムを作る、
WebMSXの紹介をしているから……
「MSXも現在進行形」と思われる

奴が叩かれるのは自業自得だけど、
無関係な者・真面目な者まで
迷惑を被っている
2020/06/30(火) 22:07:55.75
ちょっと何言ってるかわからない
2020/06/30(火) 22:14:47.32
Linuxや小型ボードの話題は、
宮城県のMSX出身の奴の名前が出てくる

潰された小型ボードのスレも、
Linux関係者コピペで荒らされた

宮城県の奴の悪事は、ここには書かないけど
2020/06/30(火) 23:00:18.29
WebMSXのコピペ機能

Alt+B:クリップボード→WebMSXに入力
Alt+C:WebMSXの画面→クリップボード

従来は、ディスクイメージに転送する
DiskExplorerや海外シェアウェアのWinimageなどが必要だった

書き込んだディスクは黄色くなり、
保存はダウンロード・それ以外は破棄
これも便利

くだらないBASICプログラムでもいいから、
ここに貼り、梅に協力してほしい
2020/07/01(水) 02:25:07.83
LOTO、↓のプログラムで当選したら報告願います

https://webmsx.org/?MACHINE=MSXTRJ&;DISKA=http://118.27.39.9/dsk/loto.dsk
2020/07/01(水) 10:15:39.01
報告しません
2020/07/01(水) 17:34:36.58
埋め立ては荒らし行為として禁止されてるネタ投下扱いのほうがいいんじゃないの
ゲームやオークションの話なんかより俺は有意義だと思うがね
2020/07/01(水) 20:04:20.43
ネタ投下「扱い」……か

「YouTuberレベル」ではないけど、
チャンネル登録者が多い人物について

本業はPC-6001だが、
MSXにも手を出している人物がいる

YouTubeやWeb上ではMSXに関わらない・公開しない
これは問題ないけど

PC-6001が本業でありながら
MSXにも深入りする、
しかも市販ゲームROMの改造までするとは……

「危険では?」と思う


大部分のPC-6001ユーザーは、
PC-6001専業と思われる〜これが一番無難では

PC-6001ユーザーは、
互換BIOS・互換フォント・互換BASICを作る
〜著作権の問題を解決する努力もしている
2020/07/01(水) 20:21:12.76
ヤフオクのレトロPCの件数

2020/7/1 20:10時点


PC-9801〜4644件
FM TOWNS〜172件
X68000〜453件
MSX〜3019件

その他〜12774件
(但し、Linux・DOS/V・英語DOS・現行機種の特殊OSを含む)


MSXとPC-9801の件数が多い


レトロゲームと比較

N64〜4487
SFC〜32025
ファミコン〜34812
メガドライブ〜3580
PCエンジン&FX〜4481 (PCE〜4358 FX〜121 誤差は勘弁)


やはり、MSXとPC-9801は
「中途半端に普及した」といえるか

PC-9801界も最悪・悲惨〜MSXと同じ、と感じた
2020/07/01(水) 22:45:48.02
https://webmsx.org/?MACHINE=MSXTRJ&;DISKA=http://118.27.39.9/dsk/loto.dsk

実行結果

ロト6:08 09 12 15 26 30
ロト7:04 13 15 19 26 33 35
Mロト:07 09 10 13 21

GET TIMEで現在の時刻を得る→TIME変数に代入→RND(-TIME)
"Hit Any Key"~入力待ちの間、RND(1)で攪拌
入力したら、キーのアスキーコード+1回攪拌
これで、RND(1)*〇+1……ボールの番号確定
ボールの回数分繰り返す

これで脱・疑似乱数になるかな?

ちなみに
本物のロトは、アナログの機械〜本物のボールを攪拌している
2020/07/01(水) 23:17:00.81
某YouTuberの方が、
カシオのMSX PV-16 + テープレコーダーの動画をアップしていた

比較的若い方にしては、MSXの勉強をしている、と感心

コメントも、彼をチャンネル登録している常連さんが基本のため、
他のMSX関係動画と違い、比較的まとも、といえる

2019年に最新ノートPCの分解・メモリ増設・SSD換装を調べたとき、
このYouTuberさんの名前を覚えた、
もちろん、分解なども学んだ……感謝している
741ナイコンさん
垢版 |
2020/07/02(木) 00:13:03.63
梅って何
742ナイコンさん
垢版 |
2020/07/02(木) 00:30:39.20
>>740
その人の動画たまにみるよ。
技術的にはあまりたいしたことはしてないけど、見せ方がうまくて固定ファンがいるね。アンチも多そうだけど。
2020/07/02(木) 03:26:28.98
上下反転プログラムは……これで完成・終了
https://webmsx.org/?MACHINE=MSXTRJ&;DISKA=http://118.27.39.9/dsk/udlr_rev.dsk


パスワード:19** (19** = MSX1)
「晒してもいい」〜本人が宣言する
http://118.27.39.9/zip/udlr_rev.zip

※けど、一応パスワードは掛けておこう

※サーバはConoHa、いつでもIP変更・解約が可能、これはプライバシー対策
2020/07/02(木) 06:46:11.07
>>736
>荒らし行為として禁止
やっぱり荒らしだったのか、ずっと黙ってみてたけど
そろそろ苦言をしたほうがいいのかな?
2020/07/02(木) 10:43:18.07
プログラム載せちゃだめ?
2020/07/02(木) 12:08:52.36
プログラムといっても、様々だからね

「くだらない」では済まない、ふざけたプログラム〜1行でも可能
マシン語・システムのROM・システムのワークエリア・VRAM・周辺機器を多用

これらは、避けたほうがいいと思う


市販ゲームの解析・改造・無断移植、
開発者以外がスロットを解析する
(開発者はRAM・ディスク・周辺機器などを調査する必要があります)

……某改造オタクみたいな行為、「バッ活」みたいな行為、
某米国人みたいな行為〜これらは厳禁にすべき

MSX-DOS・MSX-DOS2のシステムファイルも、無断配布はできない
これは、PC-9801・DOS/V・英語DOSのMS-DOS(/V)無断配布と同じ行為

あとは、他の方の判断に任せます
2020/07/02(木) 14:48:01.59
最近は変な改行文が多いね
2020/07/02(木) 18:50:55.86
>マシン語・システムのROM・システムのワークエリア・VRAM・周辺機器を多用

>これらは、避けたほうがいいと思う

理由が解らんわ
2020/07/02(木) 20:15:45.23
>>748
簡単にいえば、
「MSXのハードウェアに深入りするな・突っ込むな」
だけど、どう?
2020/07/02(木) 20:25:14.35
>>749
何で深入りいちゃいかんの?
プログラム作れないじゃん
751749
垢版 |
2020/07/02(木) 20:26:39.50
追加
「〜を多用」と書いた=「ある程度」で済めば問題ない、の意
VPOKE命令でSCREEN1のフォント変更や色変更、このレベルはいいと思う
2020/07/02(木) 20:30:58.90
>>750
>何で深入りいちゃいかんの?

それも一理あるね
だから、「避けたほうがいいと思う」〜程度の言い方に留めた
しかし、某改造オタクやバッ活みたいな行為は「厳禁」〜強調する
2020/07/02(木) 20:39:07.46
よくわかんない人だな
オールマシン語とか許せない人?
違法なコピーがダメなのはわかるけど改造は個人の自由じゃね?
2020/07/02(木) 21:15:27.80
では……市販ゲームの場合、
「〇〇を改造した」「△△を改造した」
という投稿を一人で続けたら、どう思う?
市販ゲームの改造は、ファミコンのハックROMと同じだけど、
改造マニア・ハックマニア以外の者が見たら、立腹するはず
2020/07/02(木) 21:20:53.24
改造って聞いて怒る人なんかいる?
マニア以外の人がそれを聞いたとしても「へえ」ってだけだと思うが
2020/07/02(木) 21:27:20.06
改造てハードじゃなくてソフトの改造かい・・・
個人が所有してるソフトならグレーな感じがするけど
違法なら捕まってるよね
まぁリバースエンジニアリング禁止とかあるけど
2020/07/03(金) 11:34:07.28
プロテクト解除や技術盗用目的だとダメだろうけどゲーム内容の改竄なら
お遊びだしレトロゲーならメーカーに損害もないよな
2020/07/03(金) 11:38:51.11
つーか今さらだよね
ハード改造っても簡単に手に入らないし
ソフト改造も配らなければ個人の自由だ
759ナイコンさん
垢版 |
2020/07/03(金) 11:55:57.79
俺は市販ソフト作ってたが、プロテクト解除以外の例えば無敵パッチ当てとか、セーブデータ改造とか、別にどうとも思わなかったよ。そんな小さなことより全体としてのプレイヤーの反応が重要。
760ナイコンさん
垢版 |
2020/07/03(金) 12:30:30.85
HAL研やアスキーで活躍され、PCG-8100、TRS M100の内蔵ソフト、MSX-BASIC、MSX-DOS、DOS2、MSX-JE、べーしっ君、R800とZ80の切り替えBIOSを開発してこられた鈴木仁志さんがおられますが、その方とPC-8001、88、98、Z80、BASIC、アセンブラ、C言語などで多くの著作を残している川村清さんとはどのようなご関係でしょうか。

というのも、今までPC-8001のBASIC ROMを解析し逆アセンブルしたものにコメントをふって話題になりマイクロソフトからのクレームで販売中止になる「PC-8001 Basic source program listings」という秀和から出版された書籍について疑問がでてきたからです。
この書籍の著者は川村清さん一人の名前となっていますが、PC-8001 miniが出たときの鈴木仁志さんのインタビューで、自分が書いたとエピソードを語られています。

作者は実は二人だったがアスキーの鈴木さんは名前を出せなかった説、鈴木仁志さん単独で書いたが名前を隠すために川村清さんの名前を借りた説、鈴木仁志さんのペンネームが川村清だった説、などが考えられるでしょうか。

https://akiba-pc.watch.impress.co.jp/docs/news/news/1211145.html
2020/07/03(金) 18:32:15.02
1999年10月1日、著作権法改正で
個人的に楽しむ目的であっても、
プロテクトやコピーガードを外すのは違法になった
〜だから、バッ活のプロテクト解除記事・ファイラーが許された、
ACCSの前身でさえ「バックアップ以外のコピーは〜」と表現

ファミコンのハックROM・MSXのカートリッジソフト・MSXのフロッピーソフト
これらは、吸い出しやプロテクト解除が前提では?
2020/07/03(金) 18:42:17.95
>ハード改造っても簡単に手に入らないし
>ソフト改造も配らなければ個人の自由だ

ヤフオクは、MSX本体の改造が多い気がする
薄型フロッピードライブ×2で内蔵2ドライブ化、
RAM64KBのマシンを128KBに増設など

ソフト改造は、自分で楽しむだけなら、その通り
けど、YouTubeに動画アップや、
自ブログに改造方法やプログラム記述が多い、
「公開」して意味がある、という世界では?
2020/07/03(金) 19:07:52.59
ROMにプロテクトなんか掛かってたっけ?
2020/07/03(金) 19:29:00.24
薄型FDD二段重ねな、片方をFDDエミュにして
もう片方を実FDDに。切り替えスイッチでどちらからも起動可
みたいな改造がわりと行われてる。flashfloppyとgotekの出現がでかい
2020/07/03(金) 20:13:25.48
>ROMにプロテクトなんか掛かってたっけ?

自身がROM/RAMのいずれかをチェック
→RAMの場合はコピーとみなすソフトがあるみたい

MSXの2ドライブは、BASICやMSX-DOSのユーザー向けでは?
YouTubeにあったコメント
「8枚組の〇〇でさえ1ドライブ前提だぜ」

しかし、1990年のMマガに
「2ドライブのWAVY70FD2とセットで販売のビジネスソフト、
漢字BASICのCALL KANJI1モード、Bドライブはデータ用」
を作った会社の記事があった
2020/07/03(金) 20:36:13.92
>flashfloppyとgotekの出現がでかい

電子楽器でFDDエミュレータ、
正確には実FDD交換を知ったけど
中身は ”*.MID”=MIDIファイル、
Win3.1/9x時代のPCユーザーはわかると思う
2020/07/03(金) 20:37:19.39
プロテクト解除の部分を晒さなけりゃええのんとちゃいんまっか
2020/07/04(土) 07:23:59.81
>flashfloppyとgotek
シンセやサンプラーは交換が普及してるな
現状では薄型ドライブはMSX以外で使い道が思い浮かばんけど
2020/07/04(土) 11:14:19.09
プロテクト外すのは違法性あるかも知れないけど、ROMはプロテクトないやろ。個人が吸い出して遊ぶ分には自由。
2020/07/04(土) 11:59:19.36
CALL命令でルーチンを呼ぶだけのソフト、
アスキーのBASICコンパイラ「MSXべーしっ君」
このタイプは、吸い出しが容易では?

「MSXべーしっ君」のディスク版は
アスキー自身が「原作のROMソフトを裏RAMへ転送」している
WAVY70FD・WAVY70FD2内蔵版は
ページ2に置き、「CALL BC」で裏RAMへ転送→使用可能になる仕様
2020/07/04(土) 20:36:03.60
ああ、そうそう
べーしっ君で作ったゲームを友達にみせるのに
イメージをファイルに書き出して裏RAMに転送してたわ
2020/07/05(日) 19:10:07.54
WAVY70シリーズ内蔵のべーしっ君は、知名度が低い?

CALL BCが必要と書く、それはいいんだけど、
「本体のページ2から裏RAMに転送する」
という記述は見たことがない

しかし、マニュアルには
「RAMディスクとの併用はできない、
CALL BC実行後にMSX-DOSへ行った場合、
再びCALL BCを実行する必要がある」
……裏RAM転送を意味する言葉が書いてある
2020/07/05(日) 20:11:36.13
マニュアルにページ2だとか裏RAMだとかは書いてねーだろうよ、そりゃ
そんな概念は表向きには存在しないんだから
2020/07/06(月) 04:23:29.06
3C7EDBFFFFDB663C
2020/07/06(月) 11:59:40.65
WAVY70FDシリーズの内部写真があるサイトより
「CALL BC、これだけ
でも、これをしないとベーしっ君が有効にならず、
CALL RUNなどのべーしっ君拡張命令が使えない!」

別の項に、製品版べーしっ君の説明
「WAVY70FD/2では、CALL BCのおまじないが必要です!」

この方は、CALL BCの詳細は避けた?
WAVY70シリーズはMSX2+、ページ1はサブROM・FDD・FM音源・漢字BASICが
あるので、やむを得ずページ2にべーしっ君
べーしっ君の場所は、マニュアルに#3-3 8000H〜BFFFH と記述あり
2020/07/06(月) 12:25:24.52
サブROMはページ0だった、訂正


openMSXの定義ファイル Sanyo_PHC-70FD2.xmlによると

#3-0 全域 メモリマッパあり RAM64KB

#3-1 ページ0 サブROM
#3-1 ページ1・2 漢字ドライバとBASIC

#3-2 ページ1 メモリマッパ対応フロッピーディスクコントローラ
 (定義ファイルでは32KB
松下のマシン・サンヨーのマシンは、openMSXではいずれも32KB
ディスクROMは16KB)

#3-3 ページ1 MSX-MUSIC
#3-3 ページ2 べーしっ君
2020/07/06(月) 19:38:42.31
PHC-70FDから吸い出したべーしっ君のデータを
FS-A1FのA1Cockpitの領域に焼くと
やっぱりCALL BCで起動できるのな
2020/07/06(月) 19:41:08.32
777(σ・∀・)σゲッツ!!
777キタ━━━━━━(゚∀゚)━━━━━━!!!!!
777(ゝ∀・)イイッ!!
2020/07/06(月) 19:41:43.75
>>777
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
2020/07/06(月) 19:47:09.32
色々試して面白いなーと思ったのは
A1FXのBIOSをA1Fのページにあわせて焼くと
A1Fが2+として起動するところな、MSXはよくできてるわ

もっともV9958にVDPを交換したところで、正直メリットは感じられんけど
2020/07/06(月) 20:20:44.17
openMSXの
定義ファイル Panasonic_FS-A1F.xml
によると

#3-0 全域 メモリマッパあり RAM64KB

#3-1 ページ0 サブROM

(#3-1 ページ1・2 漢字ドライバ
……と書いてあるけど、間違い?)

#3-2 ページ1 メモリマッパ対応フロッピーディスクコントローラ
 (ディスクROMは16KBだが、松下・サンヨーはサイズ32KBと書いてある)

#3-3 ページ1・2 A1コックピット


PHC-70FD版べーしっ君は、#3-3 ページ2に置くべきでは?
ROMのヘッダがCALL BCルーチンになっている
2020/07/06(月) 20:26:11.76
タイマー割込み(FD9FHのフック)でBIOSのLDIRVM(005CH)を呼んで
一定時間ごとにフォントを書き換えてるんだけど
その状態でlistを表示したりして画面をスクロールさせると
関係の無いフォント(書き換えてるフォントに近いフォント)が壊れちゃう
割込みの中でVRAM関係のBIOS呼んじゃダメなのかな?
一応割り込み禁止にはしてるんだけど
2020/07/07(火) 17:46:42.40
782です
多分システムがVRAMにアクセスしてる時に
割り込んでVRAM操作しちゃうのがマズイんだろうな
というわけで諦めますw
2020/07/07(火) 20:03:26.41
べーしっ君は、
アスキーがROM製品版を作った時点で
16KBの最後に「CALL BC」相当の転送ルーチンを書いた、
本体同梱版やディスク版も考えてのことでは

メルカリを見たら
「べーしっ君が使いこなせないので売ります
自作のプログラムは大部分が暴走しました」
とあるけど、
BASICの命令は完全に覚える、
その上でべーしっ君のルールに従う、
これが必要だと思う
2020/07/08(水) 07:17:00.53
A1cockpitの場所に焼いて普通に動いてるんで
まあそれが全てという話、それが現実
2020/07/08(水) 08:27:11.01
べーしっ君ではCTRL-STOP効かないから必ず、プログラムの停止の仕組み作っとかないといけないのが盲点だった。
これを暴走と呼ぶならそうだと思うけど、まずはBASICインタプリタでマトモに動くかどうかだよね。
2020/07/08(水) 08:55:47.06
>>786
&HFBB0 に1書いて SHIFT+CTRL+GRAPH+かなは?
べーしっ君ではだめなのかな。
2020/07/08(水) 12:24:21.03
>>787
いや、そこまで難しく考えず、例えばF1押したらプログラム終わるように書くとかその程度でOK。
F1じやなくてESCとかでも良いんだけど。
ただ、何もしなくてもインタプリタならいつでも止めれたけど、べーしっ君ではそうではなかっただけ。
コンパイル済みだから当たり前なんだけどねw
2020/07/08(水) 17:53:11.55
べーしっ君で
グラフィック画面=SCREEN2以降のプログラムを作った場合
最終行は

300 GOTO 300

が多いけど、
WAVY70シリーズのマニュアルには
「無限ループを作ると、CTRL+STOPでも止まらなくなる、
INKEY$などを使い、適切な対応をするように」

使えない命令は、
ファイル関係・テープ関係・PLAY命令・DRAW命令・CALL命令・
OPEN”GRP:"AS#1でグラフィック画面に文字表示、など

”べーしっ君” ”おまじない” で検索すると、わかると思う
2020/07/08(水) 18:30:29.53
べーしっ君の
「’#N-」:FOR~NEXTのオーバーフローチェックをしない
「’#N+」:FOR~NEXTのオーバーフローチェックをする

10 '#N-
20 DEFINT A-Z
30 FOR I=0 TO &H7FFF
40 IF STRIG(0) THEN 60
50 NEXT I
60 PRINT I

べーしっ君で実行すると、無限ループ
40行で脱出し、コンパイラ上のIを表示
0~32767・-32768〜-1・0~32767……
のループらしい

10 '#N+

に書き換えると、I=32767で終了
デフォルトは「'#N+」

通常のBASICは、最後のNEXT Iでエラー
2020/07/09(木) 09:02:19.58
ベーシッ君ってエラーになると
「すぽぽーん!」とか
「すてらのびこーん!」って表示されるの?
2020/07/09(木) 18:39:45.12
べーしっ君のエラー

一番多い:べーしっ君で使えない命令を使った
run
Syntax error in 30
Ok

コンパイルの範囲内から勝手に外へ出た
10 '
20 _TURBO ON
30 GOTO 50
40 _TURBO OFF
50 END

run
Undefined line number in 40
Ok

未使用の整数型変数を渡そうとした
10 'A%=1
20 _TURBO ON(A%)
30 END

run
Illegal function call in 20
Ok

おまけ:ダイレクトモードで、このエラーが出たらべーしっ君が有効
_TURBO ON
Illegal direct
Ok
2020/07/11(土) 06:39:48.13
べーしっ君のマニュアルでは、
「既に圧縮されたプログラム」
「ON〜GOSUB、割り込みを使ったプログラム」
はメモリを消費するので、
Out of memoryエラーの原因になる……とある

べーしっ君とは無関係だけど、
某テープゲームを解析・ディスク化したとき
ちなみに、プログラム自体は暗号化されている
一つのプログラムは、既に圧縮されていた!
「ON KEY GOSUB」で改造ルーチン追加を試みたところ、
Out of memory……なので、
改造ルーチンは、既存のON STOP GOSUB書き換えに留めた
2020/07/12(日) 18:13:50.16
プロテクト解析はアウトだけど、

MSXなどレトロPCゲームの場合、
市販ゲームの暗号化の解析は、
「公開しない・配布しない」
範囲であれば問題ない?
2020/07/13(月) 18:45:19.21
バッ活の電子書籍版が
Google PlayやKindleにあるけど、問題ない?

プレビュー版で見ても、
ゲーム名+プロテクト解除方法の記事が多いけど?

初期のバッ活では、テープにコピーのため、
裏RAMを調べるプログラムがあったが……、
「特定のアドレスに1バイト書き込む→書き込んだ文字と一致」
を調べるのみ、スロット番号は単純に00~8Fをループさせている

Disk BASICがあれば、裏RAMのスロットは簡単にわかるけど、
こんなプログラムを作ったら、
「MSXテクニカルガイドブック」の筆者から叱られそう

もっとも、「MSXテクニカルガイドブック」は
裏RAMにCALL命令拡張プログラムを作る、
FM BIOSを調べるなど、正当な目的で書かれたと思う
2020/07/15(水) 18:42:57.14
永久保存版2のフロッピーディスクイメージに
べーしっ君たーぼ 16384KBが!

バイナリエディタで見たところ、Ver2.1
2+時代のべーしっ君ぷらすは、Ver2.0
違いは「turboRでコンパイルするとR800命令が使われる」
ぷらすのCALL BC相当転送ルーチンはないと思う

転送ルーチン+CALL命令セット+RAMディスク使用禁止の
ローダーを追加し、BLOAD”〇〇",R で裏RAM化に成功

市販ROM、まともなソフトの場合、
「周辺機器搭載」「周辺機器制御」ではない
CALL命令拡張ソフトは、べーしっ君くらい?

テープ時代のMIAモニタアセンブラは、CMD命令だし……
797796
垢版 |
2020/07/15(水) 18:58:39.79
べーしっ君たーぼは 16,384バイトの間違い

永久保存版2のディスクイメージ版は、MSX-DOS2からローダーを呼び、
べーしっ君たーぼ単体をロードする仕組みだ、と思われる


CALL命令拡張「のみ」のソフト、
テープ時代のワケありソフトにあった!
もっとも、RAM64KBが必要だから、拡張RAM48KBも付属していた
2020/08/11(火) 14:01:46.70
みんなでべーしっ君でなにか作ろう

MSX2 Dual Layer Screen Mode Test MSX2 X-Basic - YouTube
ttps://www.youtube.com/watch?v=gv18CElRZY8
799ナイコンさん
垢版 |
2020/08/12(水) 14:33:32.75
べーしっ君 持ってないっす
どれくらい速くなるのか触ってみたいな
2020/08/12(水) 20:33:01.05
blueMSXを試してみたら?

ダイレクトモードで、
_TURBO ON
を実行し、
Illegal direct
が表示されたら有効

ヒント "XBASIC2"

べーしっ君の開発者は、「XBASIC」と命名するつもりだったが……
"XBASIC" は海外版の名称になったらしい

ファミコン版オホーツクに消ゆのユーザーの前で
「べーしっ君」と発言すると、荒らされる! 禁句!
イラストは4コマ漫画の「べーしっ君」作者で、
ゲーム本編でも主人公本人や父親が現れるから
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況