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
 |