トップページ > 電気・電子 > 2020年10月12日 > Imc2GKSJ

書き込み順位&時間帯一覧

5 位/141 ID中時間01234567891011121314151617181920212223Total
書き込み数0001100000000000000000406



使用した名前一覧書き込んだスレッド一覧
774ワット発電中さん
REM文ルーチン ソースリスト 1/2
REM文ルーチン ソースリスト 2/2
REM文マシン語 まとめ
こどもパソコン IchigoJam II

書き込みレス一覧

こどもパソコン IchigoJam II
126 :774ワット発電中さん[sage]:2020/10/12(月) 03:47:04.36 ID:Imc2GKSJ
>>125
マシン語は整数型しか使わない初心者に、そんな質問をされても……。

ただ、1980年代の数学の本では、
「BASICで精度を要求する場合、PC-9801を使うべき」
と発言した著者がいた。

MSX BASICも、1983年〜MSX1の時点で倍精度(14桁)に対応している。
MSX書籍の著者で、本人の知識はBASICのみ〜素人だけど、
数学の知識はあるので、DRAW命令・PSET命令・LINE命令で
美しい図形や曲線を描いた人物がいた。
MSX-Datapackにある?
http://ngs.no.coocan.jp/doc/wiki.cgi/datapack?page=6%BE%CF+%C6%E2%C9%F4%A5%EB%A1%BC%A5%C1%A5%F3

「Math-Packの大部分はページ0=BIOS部分にあるが、
一部はページ1=インタプリタにあるため、DOSでは注意が必要」
という文章。

https://www.msx.org/wiki/BASIC_Routines_In_Main-ROM

海外サイトにはBIOSやソースコードの掲載が多いので、それを調べるしかないのでは?
国内では、メーカーやソフトハウス向けの技術資料に、MSXのBIOSなどのソースコードがあった。
名前は忘れたけど……最近、ヤフオクで出品があり、複数の入札があった。


Amazonにある、英語の資料も気になる。MSXで検索すると出てくる。
ハードウェア技術者向けか、テクハンレベルか……わからない。
こどもパソコン IchigoJam II
127 :774ワット発電中さん[sage]:2020/10/12(月) 04:33:15.67 ID:Imc2GKSJ
名前を思い出した。

[MSXテクニカルデータブック 2 BIOSソースリスト」
1983/10/1 アスキー・マイクロソフト

国立国会図書館にあると聞いたので、調べたところ、上記に加え、

「MSXテクニカルデータブック 1 (ハードウェア・ソフトウェア仕様書) 増補改訂版」
アスキー・マイクロソフトFE本部 編著
アスキー, 1985.3

もあり、複写可能だと思う。
アスキャットさんも、後者の書籍で調べたみたい。
こどもパソコン IchigoJam II
128 :774ワット発電中さん[sage]:2020/10/12(月) 22:07:16.49 ID:Imc2GKSJ
数年前に作った、REM文マシン語のプログラム。
WebMSX上に「ALT+B」でコピペ可。
他の方が作ったSCREEN1.5のプログラムをマシン語化したもの。

バイナリを99Basic上でプログラムに変換。


100 '3E0F32E9F321010F22EAF3CD7200CDCC003E2032AFF3CD6F00CD7E002100187D
110 'CD4D00237CFE1B20F62100207DE607C60507070707C601CD4D00237CFE3820EC
120 '210000E5E51160F5010800CD590006082160F57E4FCB3FB1772310F72160F57E
130 'E6F80F0F0F772306027ECB3FCB3F772310F706037ECB3F772310F92160F5D1D5
140 '010800CD5C00210008D119E5D1D52160F5010800CD5C00210008D119E5D12160
150 'F5010800CD5C00E1110800197CFE082092C9X
160 AD%=&HD000:CLEAR 200,AD%:DEFINT A-Z:AD=PEEK(&HFC4A)+PEEK(&HFC4B)*256-65536!
170 FOR I=0 TO 52:POKE &HF55E+I,VAL("&H"+MID$("2A76F62BED5BF8F7D57EFE582826B720060108000918F2FE3A3802D607D6300707070747237EFE3A3802D607D6308012231318D5C9",I*2+1,2)):NEXT
180 DEFUSR=&HF55E:A=USR(AD):DEFUSR=AD:KEY 1,"A=USR(0)"+CHR$(13)
こどもパソコン IchigoJam II
129 :REM文ルーチン ソースリスト 1/2[]:2020/10/12(月) 22:15:25.06 ID:Imc2GKSJ
F676 TXTTAB EQU 0F676H
F55E BUF EQU 0F55EH
F7F6 DAC EQU 0F7F6H

F55E ORG BUF

F55E 2A76F6 LD HL,(TXTTAB)
F561 2B DEC HL
F562 ED5BF8F7 LD DE,(DAC+2)
F566 D5 PUSH DE ;NOP(00)

F567 HBYTE:
F567 7E LD A,(HL)
F568 FE58 CP 'X'
F56A 2826 JR Z,EXIT

F56C B7 OR A
F56D 2006 JR NZ,OK
F56F 010800 LD BC,8
F572 09 ADD HL,BC
F573 18F2 JR HBYTE
F575 OK:
F575 FE3A CP '9'+1
F577 3802 JR C,HNUM
F579 D607 SUB 7
F57B HNUM:
F57B D630 SUB '0'
F57D 07 RLCA
F57E 07 RLCA
F57F 07 RLCA
F580 07 RLCA
F581 47 LD B,A
F582 23 INC HL
こどもパソコン IchigoJam II
130 :REM文ルーチン ソースリスト 2/2[sage]:2020/10/12(月) 22:16:14.55 ID:Imc2GKSJ
F583 LBYTE:
F583 7E LD A,(HL)
F584 FE3A CP '9'+1
F586 3802 JR C,LNUM
F588 D607 SUB 7
F58A LNUM:
F58A D630 SUB '0'
F58C 80 ADD A,B

F58D 12 LD (DE),A
F58E 23 INC HL
F58F 13 INC DE

F590 18D5 JR HBYTE

F592 EXIT:
F592 C9 RET

F593 END
こどもパソコン IchigoJam II
131 :REM文マシン語 まとめ[sage]:2020/10/12(月) 22:53:02.90 ID:Imc2GKSJ
F676H番地の内容を調べる
〜RAM32KB以上・MSX2以降は8001H。

blueMSXのRAM16KB設定(C001H)で実行可能を確認、
カシオPV-7と同じRAM8KB設定(E001H)ではOut of memoryエラー。

※BASICプログラムをROM化する場合は、8021Hに変わる。
テクハンより
>● BASICプログラムのROM化の方法
>1 BASICのテキスト格納先頭アドレスを8021Hに変える。
>POKE &HF676,&H21:POKE &HF677,&H80:POKE &H8020,0:NEW
>(注)必ず1行にまとめて実行する。

行末で
LD BC,8
ADD HL,BC
を実行し、行番号と"´"の中間言語をスキップ。

16進数羅列でも、REM文マシン語+展開ルーチンの場合、
READ〜DATAと違い高速、というメリットがある。
MSX・FANでは、このタイプの投稿者も少数ながらいた。

しかし、本当に凄いと思ったのは、
「REM文にアスキーコードをそのまま書く」
「展開ルーチンも、先頭からのバイト数を計算し、REM文で書く」

Wikipediaの「MSX・FAN」によると

>機械語をエンコードした一見すると無意味に思えるような文字の羅列の形で
>ソースコードに埋め込み、BASIC上から実行させるものなど、
>技巧をこらした投稿プログラムが、中期以降にはよく見られるようになった。

>プログラムのソースコードとしては著しく可読性を下げた。
>コメント行に直接キャラクタコードをバイナリとして置くなどの手法は、
>前述のとおり作業者には無意味な文字の羅列に見えるものである。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。