home *** CD-ROM | disk | FTP | other *** search
/ SeeIn AO / ALICE-CD.BIN / Šj”­ƒlƒbƒg�•‚»‚Ì‘¼ / nv_mini / source / nvselect.adv < prev    next >
Text File  |  1998-08-28  |  5KB  |  204 lines

  1. ;===============================================================================
  2. ; NVSYSTEM-mini æIæ≡ÄêɺîΣ                              programmed by ALICE SOFT
  3. ;===============================================================================
  4. ; Select(MaxX,MaxY,Pattern)
  5.  
  6. ; Pattern=0bÑÑÑÑÑÑÑÑ-ÑÑÑÑÑÑÑÑ
  7. ;                       ||||+---->    :æIæ≡é╡é╜ëµû╩é≡ò£ïAé╖éΘü^é╡é╚éóü@âtâëâO
  8. ;                       |||+----->    :æIæ≡é┼é½é╚éóòöò¬é≡âNâèâbâNé╡é╜Ä₧é╔
  9. ;                       |||         :âèâ^ü[âôé╖éΘé⌐é╟éñé⌐âtâëâO
  10. ;                       ||+------>  :~PushKeyùp
  11. ;                       |+------->  :~CheckAcceleratoré≡ö¡ìsé╖éΘé⌐é╟éñé⌐
  12. ;                       +-------->  :~CheckShiftKey   é≡ö¡ìsé╖éΘé⌐é╟éñé⌐
  13. ;[SelectBuffer]
  14. ; +00h:TopCrdX
  15. ; +02h:TopCrdY
  16. ; +04h:LenCrdX
  17. ; +06h:LenCrdY
  18. ; +08h:SelectedTopCrdX
  19. ; +0ah:SelectedTopCrdY
  20. ; +0ch:UnselectedTopCrdX
  21. ; +0eh:UnselectedTopCrdY
  22.  
  23. ;===============================================================================
  24. **Select f01,f02,f03:
  25.     US a01,30:
  26.     NB a01,f01,3:
  27.  
  28.     !a29:0xffff!
  29.     !a30:0xffff!
  30.  
  31. *SelLp0:
  32.     ~GetKey:
  33.     ~PushKeyCheck a03:
  34.     ~AccelCheck   a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8000!@SelLpOut:}
  35.     ~ShiftCheck   a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8001!@SelLpOut:}
  36.     { Mkd\0:@SelLp0:}
  37.  
  38. *SelLp1:
  39.     ~GetKey:
  40.     ~PushKeyCheck a03:
  41.     ~AccelCheck   a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8000!@SelLpOut:}
  42.     ~ShiftCheck   a03:~~Res:{ Res=TRUE:!Res:0xffff!!RND:0x8001!@SelLpOut:}
  43.     !RND:Mkd!
  44.     {(RND&0b00001111)\0:@SelLp1KeyBoard:}
  45.  
  46. *SelLp1Mouse:                                            ;â}âEâXé┼æÇì∞
  47.     < a12,0,a02-1,1,1:
  48.         < a11,0,a01-1,1,1:
  49.             !a30:a11+a12*a01!
  50.             {(eX[a30]<Msx)*(Msx<(eX[a30]+eLx[a30]))*
  51.              (eY[a30]<Msy)*(Msy<(eY[a30]+eLy[a30])):
  52.                 @SelLp2:}
  53.             >
  54.         >
  55.     !a30:0xffff!
  56.     @SelLp2:
  57.  
  58. *SelLp1KeyBoard:
  59.     ;; eX[]é╞eY[]é¬é╞éαé╔éOé╚éτæIæ≡òsë┬é≡Īé╖
  60.  
  61.     { a29=0xffff:
  62.         !a11:0!
  63.         !a12:0!
  64.         }
  65.     { a29\0xffff:
  66.         !a12:a29/a01!
  67.         !a11:a29-a12*a01!
  68.         }
  69.     !a11:a11+1!
  70.     !a12:a12+1!
  71. *SelLpKeyBoard0:
  72.     {(RND&0b00000001)\0:!a12:a12-1!}    ;ü¬
  73.     {(RND&0b00000010)\0:!a12:a12+1!}    ;ü½
  74.     {(RND&0b00000100)\0:!a11:a11-1!}    ;ü⌐
  75.     {(RND&0b00001000)\0:!a11:a11+1!}    ;ü¿
  76.     { a11<  1:!a11:a01+1-1!}
  77.     { a11>a01:!a11:    1!}
  78.     { a12<  1:!a12:a02+1-1!}
  79.     { a12>a02:!a12:    1!}
  80. *SelLpKeyBoard1:
  81.     !a30:(a11-1)+(a12-1)*a01!
  82.     {(eX[a30]=0xffff)*(eY[a30]=0xffff):@SelLpKeyBoard0:}
  83.     <@(RND&0b00001111)\0:~GetKey:>
  84.     IZ eX[a30]+2,eY[a30]+2:
  85.     @SelLp2:
  86.  
  87. *SelLp2:
  88.     { a29\a30:
  89.         { a29\0xffff:
  90.             CC eUx[a29],eUy[a29],eLx[a29],eLy[a29],eX[a29],eY[a29]:}
  91.         { a30\0xffff:
  92.             CC eSx[a30],eSy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}
  93.         !a29:a30!
  94.         }
  95. *SelLp3:
  96.     !RND:Mkd!
  97.     {(Mkd&16)\0:
  98.         {(a03&0b10)=0:{ a30\0xffff:!Res:a30!@SelLpOut:}}
  99.         {(a03&0b10)\0:             !Res:a30!@SelLpOut:}
  100.         @SelLp0:}
  101.     {(Mkd&32)\0:
  102.         !Res:0xffff!@SelLpOut:}
  103.     @SelLp1:
  104. *SelLpOut:
  105.     { a30\0xffff:
  106.         {(a03&0b1)\0:CC eUx[a30],eUy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}
  107.         {(a03&0b1)=0:CC eSx[a30],eSy[a30],eLx[a30],eLy[a30],eX[a30],eY[a30]:}}
  108.     UG a01,30:
  109.     ~0,Res:
  110.  
  111. ;===============================================================================
  112. **PushKeyCheck f01:
  113.     US a01,30:
  114.     NB a01,f01,1:
  115.     {(a01&0b100)\0:~PutPushKeyWaitSub:}
  116.     UG a01,30:
  117.     ~0,0:
  118.  
  119. **AccelCheck f01:
  120.     US a01,30:
  121.     NB a01,f01,1:
  122.     !Res:FALSE!
  123.     {(a01&0b1000)\0:~CheckAccelerator:~~Res:}
  124.     UG a01,30:
  125.     ~0,Res:
  126.  
  127. **ShiftCheck f01:
  128.     US a01,30:
  129.     NB a01,f01,1:
  130.     !Res:FALSE!
  131.     {(a01&0b10000)\0:~CheckShiftKey:~~Res:}
  132.     UG a01,30:
  133.     ~0,Res:
  134.  
  135. ;===============================================================================
  136. **SetSelBuff:
  137.     US a01,30:
  138.     !a02:0!
  139.     DF eX[0] ,eMax,0:DF eY[0] ,eMax,0:
  140.     DF eLx[0],eMax,0:DF eLy[0],eMax,0:
  141.     DF eSx[0],eMax,0:DF eSy[0],eMax,0:
  142.     DF eUx[0],eMax,0:DF eUy[0],eMax,0:
  143.  
  144.     < a01,0,slMax-1,1,1:
  145.         { slDat[a01]>a02:!a02:slDat[a01]!}
  146.         >
  147.     { a02=0:
  148.         MS DebugMsgStr,æIæ≡é┼é½éΘæIæ≡Äêé¬éáéΦé▄é╣é±:~DebugMsgPut DebugMsgStr:
  149.         !Res:ERROR!@SetSelBuffOut:}
  150.  
  151.     < a03,1,a02,1,1:
  152.         !a21:0xffff!                ;
  153.         !a22:0xffff!                ;
  154.         NC a23,8:                    ;
  155.         < a01,0,slMax-1,1,1:
  156.             { slDat[a01]=a03:
  157.                 ~GsP 0,a01:~~a11:
  158.                 ML a04,sStrNum[a11]:
  159.                 ~GsP a04-1,a01:~~a12:
  160.                 { a21>sX[a11]:!a21:sX[a11]!!a25:sX[a11]+XSize!!a27:sX[a11]!}
  161.                 { a22>sY[a11]:!a22:sY[a11]!!a26:sY[a11]+YSize!!a28:sY[a11]+YSize!}
  162.                 {(sFSize[a12]+sX[a12])>a23:!a23:sFSize[a12]+sX[a12]!}
  163.                 < a05,0,StrXMax-1,1,1:
  164.                     ~GsP a05,a01:~~a13:
  165.                     {(sFSize[a13]+sY[a13]+StrYSpace)>a24:
  166.                         !a24:sFSize[a13]+sY[a13]+StrYSpace!}
  167.                     >
  168.                 }
  169.             >
  170.         ! eX[a03-1]:a21!
  171.         ! eY[a03-1]:a22!
  172.         !eLx[a03-1]:a23-a21+2!            ;é▒éΩé═é¿é▄é»
  173.         !eLy[a03-1]:a24-a22!
  174.         !eSx[a03-1]:a25!
  175.         !eSy[a03-1]:a26!
  176.         !eUx[a03-1]:a27!
  177.         !eUy[a03-1]:a28!
  178.  
  179.  
  180.         CC a21+XSize,a22,a23-a21+2,a24-a22,a21+XSize,a22+YSize:
  181.         !a11:0!
  182.         !a12:0!
  183.         < a01,0,slMax-1,1,1:
  184.             { slDat[a01]=a03:
  185.                 < a05,0,StrXMax-1,1,1:
  186.                     ~GsP a05,a01:~~sP:
  187.                     {(sAttr[sP]&0x100)\0:
  188.                         { sFSize[sP]\a11:~SetFSize sFSize[sP]:!a11:sFSize[sP]!}
  189.                         { sFColor[sP]\a12:~SetFColor sFColor[sP]:!a12:sFColor[sP]!}
  190.                         MS StrTmpBuff-1,:
  191.                         ME StrTmpBuff-1,0,sStrNum[sP],sStrOff[sP],1:
  192.                         T sX[sP]+XSize,sY[sP]+YSize:
  193.                         X StrTmpBuff-1:
  194.                     }
  195.                     >
  196.                 }
  197.             >
  198.         >
  199.         !Res:a02!
  200. *SetSelBuffOut:
  201.     UG a01,30:
  202.     ~0,Res:
  203. ;===============================================================================
  204.