[通信] Sharp PC-E 通信等設定
私は1991年ぐらいまでポケコンに入れ込んでいましたが
マシン語をまるで使えないヘタレでした。
努力してみましたが、おぼえることを断念してます。
それもあってか、TYーDOS、PLINKなど重要そうなものまで全く導入しませんでした。
それと91年ごろ?壊れてしまったせいで、その後の技術については全くわかりません。
つまるところ漢字をいれるとか、常駐ソフトとか、そういった事はまるっきり知らないのです。(最近知ってビビりました)
ですので過度な期待はしないでください。
ここにあるメモは、
ポケコンとパソコンをつなぐ設定
エミュレータについて
文字のグラフィックを変更する
以上の3つは今回記述
その他の部分は
小技をまとめたメモ帳から抜粋した物が主体となっています。
(当時穴のあくほど見ていたPJから読者が投稿した物などです)
このメモを使っていろいろプログラムを組んでいました。なにかの参考になれば幸いです。
PC-E500 回想録なぺーじ
http://www.geocities.jp/setokem/memo.html
http://www.geocities.jp/setokem/
ポケコンとパソコンをつなぐ設定
■エミュレータについて
文字のグラフィックを変更する
文字のグラフィックを変更する2
ファンクションキー(キーバッファ関係中心)
EVALの用法
同時キー読み(簡略)
音関係
本体の設定など
その他
BASICテクニック関連
2008/01/09
ご指摘部分をちょっと訂正しました(16進=>2進部分)。
まだまだ直す所がちょろちょろしてますので
時間見てちょくちょく直していく予定
■ポケコンとパソコンをつなぐ設定(BASICのようなテキストのみ)
パソコン側設定
高松製作所様のところにはハイパーターミナルで・・とあるけど
vistaにはありません。
ewterm2000 Ver1.32a というターミナルのフリーソフトで代用しました。作者様に感謝します。
各項目の設定は
設定の通信
ポートCOM3 速度9600 パリティなし ストップ1ビット ビット長8ビット
送信ウエイトなし フローXON/XOFF 改行 CR+LF コードは全部 シフトSJIS
設定の環境
基本 プロトコル 無手順
設定のディレクトリ
アップロード、ダウンロード テキストファイルのフォルダを任意に設定
としました。
ポケコン側設定
POKE &BFD35;,0,255,0,80
OPEN "9600,N,8,1,A,L,&1A,X,S":CLOSE
としました。OPEN$で確認できます。
送るには
ポケコン側 LOAD リターン
パソコン側 転送からテキスト送信-ファイル選択-無手順
受けるには
パソコン側 転送から受信-ファイル名入力-送信
ポケコン側 SAVE リターン
これでできました。
反応が無い、終わらないなど、安定しない面がほんのちょっとありますが
ソフト再起動で回避できます。
ソフト切り替えやスクリーンセーバにからむところを考えるとこれは
vistaの問題であるようです。
■エミュレータについて
吸出しに3時間半かかりました。9600bpsなので注意が必要です。
パソコン エミュ間のデータ移動方法(バイナリ除く)
□取り込む
si.dat内に、入れたいベーシックをテキストのコピーアンドペーストでそのまま入れます。
このファイルはデフォルトで実行ファイルのフォルダにあります。
エミュ上で LOAD"COM:" これで読み込まれます。
□取り出す
エミュ上で SAVE"COM:"
これで so.dat内にテキストデータとして入ります。
PC-E500 回想録なぺーじ
http://www.geocities.jp/setokem/memo.html
http://www.geocities.jp/setokem/
■文字のグラフィックを変更する
一般的にカナ文字が変更に使われると思います。
以下はカナ文字 ア を自前のグラフィックに変更する方法です。
&BFE40以下192バイトは自由に使える空間で、ここに自前の
グラフィックデータをいれます。
POKE &BFE40;,&50,&20,&10,&0E,&0A,&0C
次にカナ文字のグラフィックデータが入っているアドレスを指定する
部分がありますので、そこに今回の&BFE40;から入れたデータを指定します。
この時 &BFDDA; を指定していますが、それは、ア にくる部分の
位置を考えてのことです。
POKE &BFC93;,&DA;,&FD;,&B;
以上で ア のグラフィックを変更しました。(鍵の絵のつもり)
直す場合
CTRL + +/- 又は
INIT"SRCN: return
で直してください。
■文字のグラフィックを変更する(詳細)
E500シリーズは
PEEK&FFFF0; にて機種(又はバージョン)が調べられます。
文字のグラフィックを指定しているアドレスは機種によって異なります。
こんな感じです。
&FFFF0;の値
格納番地
BFC87
BFC90
BFC8A
BFC93
BFC8D
いじられたカナを直す場合、
CTRL + +/- 又は
INIT"SRCN: return
を使いますが
プログラム中では再度、カナ文字のグラフィック指定アドレスを正規の物に指定し直す事が必要です。
この時、先の表にある番地が有効になります。
つまり
PEEK&FFFF0;の値
1 or 2
3 or 7
4
6
8
となります。
■ファンクションキー(キーバッファ関係中心)
・key0,???
キーバッファにデータを入れる。???に入れる。
例
・入力後、編集
key0,A$:input a$
・RCL
key0、chr$0+chr$144
で前押した、又は最後の数値が表示される。
・16進数の訂正
key0,"&"+hex$A:INPUT"???";a$
a=eval a$
・リプレイに使う
ENDの前にkey0,"RUN"とすると、リターンキーでリプレイ
・key0の内容の場所
&BFD1A;の指す番地&EC;から後にkey0の内容がある
・プログラム中でrun、proモードの区別をなしにする
例
A$=CHR$0+CHR$5
b$=CHR$13
key0,a$+"list"+B$
・・・・runからproへ、そしてリスト表示
応用例
FI.+CHR$34+"E:"+B$+CHR$31+"LY"+"G.10"+B$
E:をfileして下に移動後ロードし10行目から実行。
RUNは文中使えない。
L.+STR$i+B$+CHR$28+CHR$24
i行の最後尾にいく
■ファンクションキー登録
CHR$&H81-;&H9F;
&HE0-;&HEF; は、普通登録できない。
例 KEY1,CHR$81+CHR$82
ようするに2つならべると、できる。
■EVALの用法
・例1
print right$("0"+hex$ A,2)
これと同じ事が
h$="ri.(hex$(a+256),2)"
print eval h$
でできる。
・例2
a$="A.I.$ 1-48"
a=eval a$
キー入力待ちになり、0ー9を押すと0ー9の値を得る。
■同時キー読み
例
10 poke&fb;,&a;,&0
20 poke&f0;,xx,0
30 print peek &F2;
40 goto 30
20行目のxxが&20の場合
押されたキー
RCL
hyp
HEX
EXP
7
4
1
0
同時に押された場合、数値の合計が返ってくる。
解除はpoke&fb;,&e3;
■音関係
・音長指定
(Hz)=25600/(90+4*a)
aは音の高低指定データ。半音ずつ変化する。 これに流す秒数をかける。
・音関係その1
T=150
L=38400/T
beep1,N,L/(22+N)*S
四分音符
八分音符
全音符
・音関係その2
マニュアルの高低指定値の周波数・・・・s
テンポ・・・・・t
四分音符は58*s/t
例 ド BEEP1,222,58,216.8/T
四分休符
forW=1to44118/T:next(nextWは駄目)
・beep
print chr$7 beep1と同じ
・音を消す
11ピンの1番と2番をつなぐ。
絶えず1mA流れるので必要の無いときははずす。
・音を消す2
11Pコネクタ2番7番からイヤホンに
■本体の設定など
poke&fd;,&xx;
xx ・・・・
・画面のon,off
off poke&2000,&3E
on poke&2000,&3F
・パワーオフ
poke&BFE00;,8,0,&41:call&FFFDC;
又は key0,chr$0+chr$15
・文字反転
poke&BFCA1;,&40
もどすのは&0
・width設定
poke&BFC9D;,40から1まで。
はじめは40
・行数制限設定
poke&BFC9E;,4から1まで。
はじめは4
C-CEキーを押すとファンクションキーを表示して元に戻ってしまいます。
・キーを押さえてからリピートするまでの時間
poke&BFCBA;,1から255まで
始めは43
・リピートの時間
poke&BFCBB;,1から255まで
始めは4
・テープの音待ち
poke&BFD48;,??
始めは80
・インサートモードのキャラクタをハートに
poke&BFC84;,&1c,&28,&F;
■その他
・メモリ
E500、E550において、&BFE40;より数バイトはフリー
&BFF00;まで192バイト(&C0;バイト)
小さいマシン語、キャラクタ変更データ入れるのに使用できます。
・外部電源
11Pコネクタ上から2番に+3番に-
乾電池4本直列分 300mA6Vいれる
・シンボルランプ点灯
E=&B8;
poke&2008,E:poke&2008,&7f
a=PEEK &200B:A=PEEK&200B:ifA<>3 LET E=E+1
poke&2008,E:poke&2008,&7F
poke&200A、????
注a=PEEK &200Bはダミーリード。レーンを調べてあわせている。
3がAレーン、8がBレーン、24がCレーン
A 0 PBL PRO RUN BUSY
B 2rdF CAPS HYP カナ 小文字
C DE G RAD E PRINT
D 0 0 0 0 BATT
画面戻すのはPOKE&2000,&3F
・縦横比
31/28=1.107
・S1:に機械語セーブ
そのサイズのファイルを作っておく。
open"S1:MASHINE.BIN"for outputAS#1
print#1,そのサイズ分のデータ
close
のちに、savem"S1:MACHINE.BIN",番地
・BTEXT$について
初期値="S1:TEXT.BAS"
変更するとTEXT.BASの時が保存されたまま
他のプログラムが入力できる。
・エンジニアソフトウェア禁止
BTEXT$="ENG.$$$"なので
SET"ENG.$$$",Pとする。解除は、," "
・高速化改造
CPU・SC62015の上にある2.3のセラロックを3.00へ切り替える
1.31倍速くなる。
・キー入力
INKEY$1
INKEY$0
INPUT$(入力文字数)
INPUT$1
・画面転送
copy"S1:funckey"to"scrn:"
でファンクションキーの内容が画面転送される。
data.basにすると変数データを参照できる。
・コントロールキーでちょっと楽に入力
CTRL+E
CTRL+H
CTRL+K
CTRL+L
CTRL+M
CTRL+R
CTRL+U
■BASICテクニック関連
・for、next
fori=0to1step0
この間が無限ループになる。
next
・\、modを使いたい
a \ b = int(a/b)
a mod b = a-int(a/b)*b
・-1or1
#NAME?
・ハイパーオリンピック技
k$=inkey$:if i$<>k$ LET y=y+1:i$=k$
前後をループさせる
・四捨五入
CINT(A)=INT(A+0.5)
・16=>2進データ変換
clear:cls
input w$:e=eval ("&"+w$)
t=128:fori=0to7:
a$=a$+chr$(&7F-((E AND t)<>0)*8)
t=t/2:next
print a$
注
変数 t を使わず
a$=a$+chr$(&7F-((E AND 2^(7-i))<>0)*8)
でもOK
a$=a$+chr$(&30-((E AND 2^(7-i))<>0))
とすると0、1で表現されます。
・RND命令 初期化
R=RND-1で乱数列を初期化する
・nextについて
nextの後の変数を書くか書かないかでスピードが異なる
・A=-1,1,-1,1・・・・
Z=1-Z:A=Z*2-1
良く考えれば、A=1:A=-A
・文字列1字挿入
1<=A<=LEN B$の範囲にある時
B$=LEFTt$(B$,A-1)+"?"+RIGHT$(B$,LENB$-A)
・0について
0は&でよい。メモリの短縮になる。スピードは犠牲になる。
・for、nextの時間差測定
fori=0to500:???:nextで実験
なお、ループ自体はfori=&to;&1f4:???:next
としても時間は変わらない。
???で
A=0 43秒
A=& 44秒
a=&0 45秒
※不必要としか思えない内容、全く理解できない内容など、内部RAM関連、BTEXT$、MEM$、reservedに関してかなりの部分割愛しました。
ある程度確認しましたが、確認しきれていない部分もかなりあります。ですのでこの情報に関する質問にはほとんど答えられません。
全て自己責任にてお願い致します。
PC-E500 回想録なぺーじ
http://www.geocities.jp/setokem/memo.html
http://www.geocities.jp/setokem/