home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SeeIn AO
/
ALICE-CD.BIN
/
Šj”ƒlƒbƒg�•‚»‚Ì‘¼
/
nv_mini
/
source
/
nvselect.adv
< prev
next >
Wrap
Text File
|
1998-08-28
|
5KB
|
204 lines
;===============================================================================
; NVSYSTEM-mini æIæ≡ÄêɺîΣ programmed by ALICE SOFT
;===============================================================================
; Select(MaxX,MaxY,Pattern)
; Pattern=0bÑÑÑÑÑÑÑÑ-ÑÑÑÑÑÑÑÑ
; ||||+----> :æIæ≡é╡é╜ëµû╩é≡ò£ïAé╖éΘü^é╡é╚éóü@âtâëâO
; |||+-----> :æIæ≡é┼é½é╚éóòöò¬é≡âNâèâbâNé╡é╜Ä₧é╔
; ||| :âèâ^ü[âôé╖éΘé⌐é╟éñé⌐âtâëâO
; ||+------> :~PushKeyùp
; |+-------> :~CheckAcceleratoré≡ö¡ìsé╖éΘé⌐é╟éñé⌐
; +--------> :~CheckShiftKey é≡ö¡ìsé╖éΘé⌐é╟éñé⌐
;[SelectBuffer]
; +00h:TopCrdX
; +02h:TopCrdY
; +04h:LenCrdX
; +06h:LenCrdY
; +08h:SelectedTopCrdX
; +0ah:SelectedTopCrdY
; +0ch:UnselectedTopCrdX
; +0eh:UnselectedTopCrdY
;===============================================================================
**Select f01,f02,f03:
US a01,30:
NB a01,f01,3:
!a29:0xffff!
!a30:0xffff!
*SelLp0:
~GetKey:
~PushKeyCheck a03:
~AccelCheck a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8000!@SelLpOut:}
~ShiftCheck a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8001!@SelLpOut:}
{ Mkd\0:@SelLp0:}
*SelLp1:
~GetKey:
~PushKeyCheck a03:
~AccelCheck a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8000!@SelLpOut:}
~ShiftCheck a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8001!@SelLpOut:}
!RND:Mkd!
{(RND&0b00001111)\0:@SelLp1KeyBoard:}
*SelLp1Mouse: ;â}âEâXé┼æÇì∞
< a12,0,a02-1,1,1:
< a11,0,a01-1,1,1:
!a30:a11+a12*a01!
{(eX[a30]<Msx)*(Msx<(eX[a30]+eLx[a30]))*
(eY[a30]<Msy)*(Msy<(eY[a30]+eLy[a30])):
@SelLp2:}
>
>
!a30:0xffff!
@SelLp2:
*SelLp1KeyBoard:
;; eX[]é╞eY[]é¬é╞éαé╔éOé╚éτæIæ≡òsë┬é≡Īé╖
{ a29=0xffff:
!a11:0!
!a12:0!
}
{ a29\0xffff:
!a12:a29/a01!
!a11:a29-a12*a01!
}
!a11:a11+1!
!a12:a12+1!
*SelLpKeyBoard0:
{(RND&0b00000001)\0:!a12:a12-1!} ;ü¬
{(RND&0b00000010)\0:!a12:a12+1!} ;ü½
{(RND&0b00000100)\0:!a11:a11-1!} ;ü⌐
{(RND&0b00001000)\0:!a11:a11+1!} ;ü¿
{ a11< 1:!a11:a01+1-1!}
{ a11>a01:!a11: 1!}
{ a12< 1:!a12:a02+1-1!}
{ a12>a02:!a12: 1!}
*SelLpKeyBoard1:
!a30:(a11-1)+(a12-1)*a01!
{(eX[a30]=0xffff)*(eY[a30]=0xffff):@SelLpKeyBoard0:}
<@(RND&0b00001111)\0:~GetKey:>
IZ eX[a30]+2,eY[a30]+2:
@SelLp2:
*SelLp2:
{ a29\a30:
{ a29\0xffff:
CC eUx[a29],eUy[a29],eLx[a29],eLy[a29],eX[a29],eY[a29]:}
{ a30\0xffff:
CC eSx[a30],eSy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}
!a29:a30!
}
*SelLp3:
!RND:Mkd!
{(Mkd&16)\0:
{(a03&0b10)=0:{ a30\0xffff:!Res:a30!@SelLpOut:}}
{(a03&0b10)\0: !Res:a30!@SelLpOut:}
@SelLp0:}
{(Mkd&32)\0:
!Res:0xffff!@SelLpOut:}
@SelLp1:
*SelLpOut:
{ a30\0xffff:
{(a03&0b1)\0:CC eUx[a30],eUy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}
{(a03&0b1)=0:CC eSx[a30],eSy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}}
UG a01,30:
~0,Res:
;===============================================================================
**PushKeyCheck f01:
US a01,30:
NB a01,f01,1:
{(a01&0b100)\0:~PutPushKeyWaitSub:}
UG a01,30:
~0,0:
**AccelCheck f01:
US a01,30:
NB a01,f01,1:
!Res:FALSE!
{(a01&0b1000)\0:~CheckAccelerator:~~Res:}
UG a01,30:
~0,Res:
**ShiftCheck f01:
US a01,30:
NB a01,f01,1:
!Res:FALSE!
{(a01&0b10000)\0:~CheckShiftKey:~~Res:}
UG a01,30:
~0,Res:
;===============================================================================
**SetSelBuff:
US a01,30:
!a02:0!
DF eX[0] ,eMax,0:DF eY[0] ,eMax,0:
DF eLx[0],eMax,0:DF eLy[0],eMax,0:
DF eSx[0],eMax,0:DF eSy[0],eMax,0:
DF eUx[0],eMax,0:DF eUy[0],eMax,0:
< a01,0,slMax-1,1,1:
{ slDat[a01]>a02:!a02:slDat[a01]!}
>
{ a02=0:
MS DebugMsgStr,æIæ≡é┼é½éΘæIæ≡Äêé¬éáéΦé▄é╣é±:~DebugMsgPut DebugMsgStr:
!Res:ERROR!@SetSelBuffOut:}
< a03,1,a02,1,1:
!a21:0xffff! ;
!a22:0xffff! ;
NC a23,8: ;
< a01,0,slMax-1,1,1:
{ slDat[a01]=a03:
~GsP 0,a01:~~a11:
ML a04,sStrNum[a11]:
~GsP a04-1,a01:~~a12:
{ a21>sX[a11]:!a21:sX[a11]!!a25:sX[a11]+XSize!!a27:sX[a11]!}
{ a22>sY[a11]:!a22:sY[a11]!!a26:sY[a11]+YSize!!a28:sY[a11]+YSize!}
{(sFSize[a12]+sX[a12])>a23:!a23:sFSize[a12]+sX[a12]!}
< a05,0,StrXMax-1,1,1:
~GsP a05,a01:~~a13:
{(sFSize[a13]+sY[a13]+StrYSpace)>a24:
!a24:sFSize[a13]+sY[a13]+StrYSpace!}
>
}
>
! eX[a03-1]:a21!
! eY[a03-1]:a22!
!eLx[a03-1]:a23-a21+2! ;é▒éΩé═é¿é▄é»
!eLy[a03-1]:a24-a22!
!eSx[a03-1]:a25!
!eSy[a03-1]:a26!
!eUx[a03-1]:a27!
!eUy[a03-1]:a28!
CC a21+XSize,a22,a23-a21+2,a24-a22,a21+XSize,a22+YSize:
!a11:0!
!a12:0!
< a01,0,slMax-1,1,1:
{ slDat[a01]=a03:
< a05,0,StrXMax-1,1,1:
~GsP a05,a01:~~sP:
{(sAttr[sP]&0x100)\0:
{ sFSize[sP]\a11:~SetFSize sFSize[sP]:!a11:sFSize[sP]!}
{ sFColor[sP]\a12:~SetFColor sFColor[sP]:!a12:sFColor[sP]!}
MS StrTmpBuff-1,:
ME StrTmpBuff-1,0,sStrNum[sP],sStrOff[sP],1:
T sX[sP]+XSize,sY[sP]+YSize:
X StrTmpBuff-1:
}
>
}
>
>
!Res:a02!
*SetSelBuffOut:
UG a01,30:
~0,Res:
;===============================================================================