143 lines
2.3 KiB
ArmAsm
143 lines
2.3 KiB
ArmAsm
|
*****************************************
|
|||
|
* *
|
|||
|
* TwentyOne.x <EFBFBD>u<EFBFBD>Ƃ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v *
|
|||
|
* patch for human Ver 2.02,2.03 *
|
|||
|
* *
|
|||
|
*****************************************
|
|||
|
*
|
|||
|
* file name: options.s
|
|||
|
* author: <EFBFBD>d<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (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 * <EFBFBD>ȉ<EFBFBD><EFBFBD>̗v<EFBFBD>̂<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŃC<EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD>v<EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD><EFBFBD> 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 * <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lea -18(a1),a1 * IOCS B_LPEEK <EFBFBD>̖߂<EFBFBD><EFBFBD>l a1
|
|||
|
* <EFBFBD><EFBFBD> d0 <EFBFBD>̒l<EFBFBD><EFBFBD><EFBFBD>擾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X + 4
|
|||
|
* <EFBFBD>Ȃ̂Ŏ<EFBFBD><EFBFBD>̃f<EFBFBD>o<EFBFBD>C<EFBFBD>X<EFBFBD>ւ̃A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><EFBFBD>
|
|||
|
* -18(a1) <EFBFBD>ƂȂ<EFBFBD><EFBFBD>܂<EFBFBD> 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 * <EFBFBD>Ȃ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̍s<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>s<EFBFBD>ɂȂ<EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* lea 8(a1),a1 * <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>s<EFBFBD><EFBFBD><EFBFBD>Ǝv<EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>
|
|||
|
* 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 <EFBFBD>d<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>s.<EFBFBD>jawamoto)',0
|
|||
|
*
|
|||
|
.end
|