今日のテーマ   日々改造 (^_^;)       
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル エラーが出るなら元を絶ってしまえばいいじゃない
投稿日: 2024/05/22(水) 00:14
投稿者konno
 番 号 11253    11251 番 konno さんへのコメント

> 2024-04-16 10:01:41 STIME(09BA) 1876:4778 'サポート外 VIDEO BIOS(Int10h) 機能: AX=8500'
> 2024-04-16 10:01:42 STIME(09BA) 1876:47F1 'サポート外 VIDEO BIOS(Int10h) 機能: AX=8582'
> 2024-05-08 07:47:20 STIMEJ(2797) 433A:5982 'サポート外 KEYBOARD BIOS(int16h) 機能 F6'
> 2024-04-16 10:02:00 STIME(09BA) 1876:4D68 'サポート外 Int6F'
> 
> このようなエラーログが延々と出続けていたのです。

これを何とかしないと J31BASICコンパイラは使い物にならないですね。
それで考えたのは、常駐プログラムでこれらの割り込みを横取りして無効化すること。

私がいつもお世話になっている、アセンブラ入門のサイトから
トップ-> アセンブラ 第2章-> 第2章.メモリー管理-> 2-7. 常駐プログラム(TSR)
https://programmer.main.jp/assembler2/assembler10.html

このページの、「HOOK21」完成版(?) のソースを元に、INT10h でやってみたら出来ました。
ところが常駐解除が出来ないのです。
色々やってみてわかったのは、ソースの解放チェックルーチンで

STAY_CHEK:
	mov	ax,3521h
	int	21h             	;割り込みベクター取得

	mov	ax,es           	;解放できるかのチェック
	dec	ax
	mov	es,ax
	mov	di,8
	cld
	mov	si,offset PRCNAME
;	mov	cl,7			;★ cl ではうまくいかない、
	mov	cx,7			;★ cx ならうまくいく

	repz	cmpsb            	;名前が一緒かのチェック
	or	cx,cx
	jz	_STAY
	stc                     	;解放できない
	ret
_STAY:                           	;解放できる
	clc
	ret

★印のところの cl を cx に変えたら常駐解除できました。

# 汚れていたのは ch だったのです。

これで調子に乗って、INT16h  INT6Fh  も一緒にしてしまいました。
でもまたもや常駐解除が出来ない。(>_<)
プログラムの仕組みがわかってないからでしょうね。(;_;)

    - No.11253 一括表示へ   -   コメント元:11251 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
11226.J31用BASICコンパイラの各エミュ対応沼 - konno 24/04/23-01:23
 ┣11234.C000h VRAM領域と CDBL$() の問題 - konno 24/05/01-17:48
 ┃┣11239.C000h セグメントは間違い、A000h でした。m(__)m - konno 24/05/06-01:56
 ┃┗11240.Re: C000h VRAM領域と CDBL$() の問題 - としき 24/05/09-22:22
 ┃ ┗11241.Re^2: C000h VRAM領域と CDBL$() の問題 - konno 24/05/10-01:02
 ┃  ┗11242.Re^3: C000h VRAM領域と CDBL$() の問題 - としき 24/05/10-13:07
 ┃   ┗11243.Re^4: C000h VRAM領域と CDBL$() の問題 - konno 24/05/11-01:03
 ┃    ┗11244.Re^5: C000h VRAM領域と CDBL$() の問題 - としき 24/05/11-11:11
 ┃     ┗11245.Re^6: A000h VRAM領域と CDBL$() の問題 - konno 24/05/12-02:04
 ┣11246.VTDOSは 2バイト文字の表示に難有り - konno 24/05/13-15:07
 ┃┗11247.Re: VTDOSは 2バイト文字の表示に難有り - としき 24/05/13-22:24
 ┃ ┗11248.Re^2: VTDOSは 2バイト文字の表示に難有り - めざら 24/05/14-16:47
 ┃  ┗11249.Re^3: VTDOSは 2バイト文字の表示に難有り - konno 24/05/14-22:08
 ┗11251.VTDOSの vtd_err.log のサイズが超巨大になってた件 - konno 24/05/18-23:57
  ┣11252.DOSVAXJ3の超巨大ファイルで C:の空きがゼロになった件 - konno 24/05/21-00:15
  ┗11253.エラーが出るなら元を絶ってしまえばいいじゃない - konno 24/05/22-00:14

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]