BASICで使い勝手良かったが、コマンド常駐型も作ってみたので公開。
今回はPasopia7と700専用。
以下BASICを実行すると、T-BASIC7のCOMコマンドをフックします。
100 'XPAC2 Command Prompt for Pasopia7/700 (C) 2025 zak110 CLEAR ,&HEFFF120 FOR I=&HF000 TO &HF0F1130 READ A$140 POKE I,VAL("&H"+A$)150 NEXT I160 H=&HF495170 L=&HF494180 IF PEEK(H)=&H53 AND PEEK(L)=&H84 THEN A=&HF0E3:CALL A:PRINT"COM Command Hooked." ELSE A=&HF0D7:CALL A:PRINT"COM Command Unhooked."190 END200 DATA F5,B7,28,05,F1,C3,84,53,F5,E5,D5,C5,3E,07,D3,1B210 DATA 0E,05,CD,05,00,0E,2F,06,3E,CD,05,00,AF,67,57,5F220 DATA D3,19,0E,01,CD,05,00,38,F9,FE,03,28,28,FE,08,28230 DATA 2B,FE,0D,28,49,FE,20,38,E9,FE,F7,30,E5,47,7B,FE240 DATA FE,30,DF,B7,20,01,60,0E,2F,CD,05,00,7B,D3,18,78250 DATA D3,1A,1C,18,CD,C1,D1,E1,F1,C9,18,B9,7B,B7,28,C2260 DATA 0E,06,CD,05,00,0E,2F,06,1D,CD,05,00,06,20,CD,05270 DATA 00,06,1D,CD,05,00,0E,05,CD,05,00,1D,18,A4,0E,2F280 DATA 06,0D,CD,05,00,06,0A,CD,05,00,7B,B7,28,87,7C,FE290 DATA 45,28,C2,FE,65,28,BE,7B,D3,18,AF,D3,1A,57,5F,D3300 DATA 18,3E,0F,D3,1B,0E,01,CD,05,00,FE,03,28,A7,DB,1A310 DATA FE,F7,30,F1,0E,2F,7A,D3,19,7B,D3,18,DB,1A,B7,28320 DATA 0A,47,CD,05,00,13,7A,D6,08,20,EB,06,0D,CD,05,00330 DATA 06,0A,CD,05,00,18,83,F5,E5,D5,C5,21,84,53,22,94340 DATA F4,18,0A,F5,E5,D5,C5,21,00,F0,22,94,F4,C1,D1,E1350 DATA F1,C9
その後は「COM」コマンドでプロンプト「>」が表示され、SDコマンドの入力ができます。
1文字削除は「DEL」、終了は「e(xit)」コマンド or 「STOP」キー or 「CTRL+C」キー
RS-232C制御コマンド「COM(チャンネル番号)ON/OFF/STOP」もそのまま使えます。
常駐させずにプロンプトを利用する場合は、F008hから直接起動。
事前にCLEAR,&HEFFFを忘れずに。
バイナリからCOMフックする場合は、F0E3hをコール。
以降はCOMコマンドでプロンプト起動。
COMフックを解除する場合は、F0D7hをコール。
以降はCOMコマンドを入力してもエラーになります。
SCREEN 0で起動すると、スクロールも滑らかで気持ちよく操作できます。
0 件のコメント:
コメントを投稿