which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			143 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
	
	
| *****************************************
 | ||
| *					*
 | ||
| *	TwentyOne.x 「とぅぇにぃわん」	*
 | ||
| *	patch for human Ver 2.02,2.03	*
 | ||
| *					*
 | ||
| *****************************************
 | ||
| *
 | ||
| *	file name:	options.s
 | ||
| *	author:		Ext (T.Kawamoto)
 | ||
| *	last modify:	92/3/1
 | ||
| *			92/3/17 thanks YUU(HARUKA)
 | ||
| *
 | ||
| blpeek:	macro
 | ||
| 	moveq.l	#$84,d0
 | ||
| 	trap	#15
 | ||
| 	endm
 | ||
| *
 | ||
| getpdb:	macro
 | ||
| 	dc.w	$ff51
 | ||
| 	endm
 | ||
| *
 | ||
| 	.xdef	_TwentyOneOptions
 | ||
| *
 | ||
| 	.text
 | ||
| *
 | ||
| _TwentyOneOptions:
 | ||
| 	movem.l	a0-a2,-(sp)
 | ||
| 	bsr	search_memory_blindly
 | ||
| 	tst.l	d0
 | ||
| 	bne	return
 | ||
| 	bsr	search_device_blindly
 | ||
| return:
 | ||
| 	movem.l	(sp)+,a0-a2
 | ||
| 	rts
 | ||
| *
 | ||
| search_device_blindly:
 | ||
| 	lea	$00006800,a1
 | ||
| search_NUL_device_loop:
 | ||
| 	cmp.l	#$00020000,a1
 | ||
| 	bcc	sd_not_found
 | ||
| 	blpeek
 | ||
| 	cmp.l	#'NUL ',d0
 | ||
| 	beq	found_NUL_device
 | ||
| *	lea	4(a1),a1			* 以下の要領より
 | ||
| 						* ここでインクリメントする必要は
 | ||
| 						* ありません	1992.03.17 YUU(HARUKA).
 | ||
| 	cmp.w	#'NU',d0
 | ||
| 	bne	search_NUL_device_loop
 | ||
| 	lea	-2(a1),a1
 | ||
| 	bra	search_NUL_device_loop
 | ||
| *
 | ||
| found_NUL_device:
 | ||
| *	lea	-14(a1),a1			* ← ここがおかしい
 | ||
| 	lea	-18(a1),a1			* IOCS B_LPEEK の戻り値 a1
 | ||
| 						* は d0 の値を取得したアドレス + 4
 | ||
| 						* なので次のデバイスへのアドレスは
 | ||
| 						* -18(a1) となります	1992.03.17 YUU.
 | ||
| search_device:
 | ||
| 	blpeek
 | ||
| sd_loop:
 | ||
| 	move.l	d0,a0
 | ||
| 	lea	$000E(a0),a2
 | ||
| 	bsr	check_TW
 | ||
| 	tst.l	d0
 | ||
| 	bne	sd_end
 | ||
| 	lea.l	(a0),a1
 | ||
| 	blpeek
 | ||
| 	cmp.l	#$ffffffff,d0
 | ||
| 	bne	sd_loop
 | ||
| sd_not_found:
 | ||
| 	moveq.l	#0,d0
 | ||
| sd_end:
 | ||
| 	rts
 | ||
| *
 | ||
| search_memory_blindly:
 | ||
| 	getpdb
 | ||
| 	move.l	d0,a1
 | ||
| 	lea	-16(a1),a1
 | ||
| search_top_loop:
 | ||
| 	lea	4(a1),a1
 | ||
| 	blpeek
 | ||
| 	tst.l	d0
 | ||
| 	beq	found_top
 | ||
| 	move.l	d0,a1
 | ||
| 	bra	search_top_loop
 | ||
| *
 | ||
| found_top:
 | ||
| 	lea	-8(a1),a1			* なぜかこの行がコメント行になっていました
 | ||
| *	lea	8(a1),a1			* 多分こっちがコメント行だと思います
 | ||
| 						* 1992.03.17 YUU(HARUKA).
 | ||
| search_memory:
 | ||
| 	lea	12(a1),a1
 | ||
| 	blpeek
 | ||
| sm_loop:
 | ||
| 	move.l	d0,a0
 | ||
| 	lea	$010E(a0),a2
 | ||
| 	bsr	check_TW
 | ||
| 	tst.l	d0
 | ||
| 	bne	sm_end
 | ||
| 	lea	$000C(a0),a1
 | ||
| 	blpeek
 | ||
| 	tst.l	d0
 | ||
| 	bne	sm_loop
 | ||
| 	moveq.l	#0,d0
 | ||
| sm_end:
 | ||
| 	rts
 | ||
| *
 | ||
| check_TW:
 | ||
| 	lea	(a2),a1
 | ||
| 	blpeek
 | ||
| 	cmp.l	#'?Twe',d0
 | ||
| 	beq	check_new
 | ||
| 	cmp.l	#'*Twe',d0
 | ||
| 	bne	check_error
 | ||
| check_old:
 | ||
| 	lea	$0004(a2),a1
 | ||
| 	blpeek
 | ||
| 	cmp.l	#'nty*',d0
 | ||
| 	bne	check_error
 | ||
| 	moveq.l	#-1,d0
 | ||
| 	rts
 | ||
| *
 | ||
| check_new:
 | ||
| 	lea	$0004(a2),a1
 | ||
| 	blpeek
 | ||
| 	cmp.l	#'nty?',d0
 | ||
| 	beq	check_new_E
 | ||
| 	cmp.l	#'ntyE',d0
 | ||
| 	bne	check_error
 | ||
| check_new_E:
 | ||
| 	lea	$0008(a2),a1
 | ||
| 	blpeek
 | ||
| 	rts
 | ||
| *
 | ||
| check_error:
 | ||
| 	moveq.l	#0,d0
 | ||
| 	rts
 | ||
| *
 | ||
| 	dc.b	'TwentyOne Option Checker Ver 1.00 '
 | ||
| 	dc.b	'Copyright 1991,92 Ext (T.Kawamoto)',0
 | ||
| *
 | ||
| 	.end
 |