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

  1. ;================================================================================
  2. ; NVSYSTEM-mini                                          programmed by ALICE SOFT
  3. ;================================================================================
  4.  
  5. **InitSpStr:
  6.     US a01,30:
  7.     !a02:SpStrBuffTop!
  8.     < a01,0,0xffff,1,1:
  9.         MS SysStrBuffTop,ü^ü^ü^:
  10.         #SpStrTbl,1:
  11.         F1,a02,a01:
  12.         MC SysStrBuffTop,a02:{ RND=TRUE:@InitSpStrOut:}
  13.         !SpKeyStrTop[a01]:a02!
  14.         !a02:a02+1!
  15.         !SpDatStrTop[a01]:a02!
  16.         < a03,0,0xffff,1,1:
  17.             #SpStrTbl,a01+2:
  18.             F1,a02,a03:
  19.             MC SysStrBuffTop,a02:{ RND=TRUE:@SkipInitSpStr:}
  20.             !a02:a02+1!
  21.             >
  22. *SkipInitSpStr:
  23.         !SpDatStrSize[a01]:a02-SpDatStrTop[a01]!
  24.         >
  25. *InitSpStrOut:
  26.     !SpKeyStrTop[a01]:NULL!
  27.     ~ClearSpArray:
  28.     UG a01,30:
  29.     ~0,0:
  30.  
  31. **RemoveSpStr:
  32.     ~0,0:
  33.  
  34. ;================================================================================
  35. ; CheckSpStr(StrTopX,StrTopY)
  36.  
  37. **CheckSpStr f01,f02:
  38.     US a01,30:
  39.     !a01:0!
  40.     !a02:f02!
  41.  
  42.     ~GsP a01,a02:~~a04:                ; a04 ìsé╠ì┼Åëé╠éôéo
  43.     ML a03,sStrNum[a04]:
  44.     { a03       =0:@CSPExit:}        ; ò╢ÄÜù±é¬ï≤é╚éτâTü[â`é╡é╚éó
  45.     { slDat[a02]\0:@CSPExit:}        ; æIæ≡Äêé═âTü[â`é╡é╚éó
  46.  
  47. *CSPLp:
  48.     <@ a01<a03:                        ; while(ò╢ÄÜù±é╠ì┼îπé▄é┼){
  49.         !a11:0xffff!
  50.         !a12:0xffff!
  51.         !a13:0xffff!
  52.         !a14:0xffff!
  53.         !a15:0xffff!
  54.         !a06:0!
  55. *CSPLpMainLoop:
  56.             { SpKeyStrTop[a06] \ 0:
  57.                 MF a05,sStrNum[a04],SpKeyStrTop[a06],a01:
  58.                 { RND = 0:
  59.                     ML a08,SpKeyStrTop[a06]:    ;
  60.                     { a13 =  0xffff:@CSPLpMainLoop0:}
  61.                     {(a01+a05)> a11:@CSPLpMainLoop1:}
  62.                     {(a01+a05)< a11:@CSPLpMainLoop0:}
  63.                     {(a01+a05)= a11:
  64.                         { a08 < a14:@CSPLpMainLoop1:}
  65.                     }
  66.  
  67. *CSPLpMainLoop0:    !a11:a01+a05!
  68.                     !a12:a02!
  69.                     !a13:a06!
  70.                     !a14:a08!
  71.                 }
  72. *CSPLpMainLoop1:!a06:a06+1!
  73.                 @CSPLpMainLoop:
  74.             }
  75. ;-------------------------------------------------------------------------------
  76. *CSPLp2:
  77.         { a13=0xffff:@CSPExit:}
  78.         < a18,0,SpStrCount,1,1:
  79.             {(SpOff[a18]=a13)*(SpXOff[a18]=a11)*(SpYOff[a18]=a12):@CSPLp3:}
  80.         >
  81.         ~GsP a11      ,a02:~~a16:
  82.         ~GsP a11+a14-1,a02:~~a17:
  83.         !SpTopX[SpStrCount] :sX[a16]!
  84.         !SpTopY[SpStrCount] :sY[a16]!
  85.         !SpSizeX[SpStrCount]:sX[a17]+sFSize[a17]          -sX[a16]!
  86.         !SpSizeY[SpStrCount]:sY[a17]+sFSize[a17]+StrYSpace-sY[a16]!
  87.         !SpOff[SpStrCount]  :a13!
  88.         !SpXOff[SpStrCount] :a11!
  89.         !SpYOff[SpStrCount] :a12!
  90.         < a18,a16,a17,1,1:
  91.             !sSpFlag[a18]:TRUE!
  92.             >
  93.         !SpStrCount:SpStrCount+1!
  94. *CSPLp3:!a01:a11+a14!
  95.         @CSPLp:
  96.     >
  97. *CSPExit:
  98.     UG a01,30:
  99.     ~0,0:
  100.  
  101. ;**CheckSpStr f01,f02:
  102. ;    US a01,30:
  103. ;    NB a01,f01,2:
  104. ;    ~GsP 0,a02:~~sP:
  105. ;    ML a03,sStrNum[sP]:
  106. ;    {(a03\NULL)*(slDat[a02]=0):                ;æIæ≡Äêé═âXâLâbâv
  107. ;        < a04,0,0xffff,1,1:
  108. ;            { SpKeyStrTop[a04]=NULL:@CheckSpStrOut:}
  109. ;            ~GsP 0,a02:~~sP:
  110. ;            !a03:a01!
  111. ;*CspStrLp:    MF a05,sStrNum[sP],SpKeyStrTop[a04],a03:
  112. ;            !a05:a05+a03!
  113. ;            { RND=0:
  114. ;                ML a06,SpKeyStrTop[a04]:
  115. ;                ~GsP a01+a05,a02:~~sP:
  116. ;                ~GsP a01+a05+a06-1,a02:~~a07:
  117. ;                !SpTopX[SpStrCount]:sX[sP]!
  118. ;                !SpTopY[SpStrCount]:sY[sP]!
  119. ;                !SpSizeX[SpStrCount]:sX[a07]+sFSize[a07]-sX[sP]!
  120. ;                !SpSizeY[SpStrCount]:sY[a07]+sFSize[a07]+StrYSpace-sY[sP]!
  121. ;                !SpOff[SpStrCount]:a04!
  122. ;                < a08,a01+a05,a01+a05+a06-1,1,1:
  123. ;                    ~GsP a08,a02:~~sP:
  124. ;                    !sSpFlag[sP]:TRUE!
  125. ;                    >
  126. ;                !SpStrCount:SpStrCount+1!
  127. ;                !a03:a05+a06!
  128. ;                @CspStrLp:
  129. ;                }
  130. ;            >
  131. ;        }
  132. ;        { SpStrCount\0:ZD 3,SpStrCount:}
  133. ;
  134. ;*CheckSpStrOut:
  135. ;    UG a01,30:
  136. ;    ~0,0:
  137. ;
  138. **ClearSpArray:
  139.     DF SpTopX ,SsPMax,0:
  140.     DF SpTopY ,SsPMax,0:
  141.     DF SpSizeX,SsPMax,0:
  142.     DF SpSizeY,SsPMax,0:
  143.     DF SpOff  ,SsPMax,0xffff:
  144.     DF SpXOff ,SsPMax,0:
  145.     DF SpYOff ,SsPMax,0:
  146.     !SpStrCount:0!
  147.     ~0,0:
  148.  
  149. **PutSpLine f01,f02,f03:
  150.     US a01,30:
  151.     NB a01,f01,3:
  152.  
  153. ;    B10,a11,a12:
  154. ;    !a13:4!~SetFSize a13:
  155. ;    !a04:a01+(a03-a13)/2!
  156. ;    !a05:a02+a03+StrYSpace-a13!
  157. ;    T a04,a05:'üú'
  158. ;    T a11,a12:
  159. ;    ~SetFSize a03:
  160.  
  161.     < a04,0,a03,1,2:
  162.         CF a01+a04,a02+a03+StrYSpace-2,1,1,StrFontColor:
  163.         CF a01+a04,a02+a03+StrYSpace-1,1,1,SelStrColor:
  164.         >
  165.  
  166.     UG a01,30:
  167.     ~0,0:
  168.  
  169. ;    CF f01,f02,f03,1,StrFontColor:
  170. ;    CF f01,f02+1,f03,1,SelStrColor:
  171.     ~0,0:
  172.  
  173. ;================================================================================
  174. **SetSelSpStrBuff f01:
  175.     US a01,30:
  176.     NB a30,f01,1:
  177.     { SpStrCount\NULL:
  178.         < a01,0,SpStrCount-1,1,1:
  179.             CC SpTopX[a01],SpTopY[a01],SpSizeX[a01],SpSizeY[a01],
  180.                SpTopX[a01]+XSize,SpTopY[a01]+YSize:
  181.             CK 1,SpTopX[a01]+XSize,SpTopY[a01]+YSize,SpSizeX[a01],SpSizeY[a01],StrFontColor,128,0,0:
  182.             !eX [a01+a30]:SpTopX[a01]!
  183.             !eY [a01+a30]:SpTopY[a01]!
  184.             !eLx[a01+a30]:SpSizeX[a01]!
  185.             !eLy[a01+a30]:SpSizeY[a01]!
  186.             !eSx[a01+a30]:SpTopX[a01]+XSize!
  187.             !eSy[a01+a30]:SpTopY[a01]+YSize!
  188.             !eUx[a01+a30]:SpTopX[a01]!
  189.             !eUy[a01+a30]:SpTopY[a01]+YSize!
  190.             >
  191.         }
  192.     UG a01,30:
  193.     ~0,0:
  194.  
  195. ;================================================================================
  196. **PutSpMsg f01,f02:
  197.     US a01,30:
  198.     !a01:f01!
  199.     !a30:f02!
  200.     !a02:SpOff[a01]!
  201.     !a04:0!
  202.     !a05:0!
  203.     < a03,SpDatStrTop[a02],SpDatStrTop[a02]+SpDatStrSize[a02]-1,1,1:
  204.         ML a06,a03:
  205.         { a04<a06:!a04:a06!}
  206.         !a05:a05+1!
  207.         >
  208.     !a06:16!
  209.     !a11:Msx!!a13:a04*a06+16!             {(a11+a13)>XSize:!a11:XSize-a13!}
  210.     !a12:Msy!!a14:a05*(a06+StrYSpace)+16!{(a12+a14)>YSize:!a12:YSize-a14!}
  211.  
  212.  
  213.     { a30=TRUE:
  214.         !a15:sX[PushKeysP]+sFSize[PushKeysP]!
  215.         !a16:sY[PushKeysP]+sFSize[PushKeysP]-16!
  216.         !a17:16!
  217.         !a18:16!
  218.         {(a15+a17)<a11:@PutSpMsgSkip1:}
  219.         {(a11+a13)<a15:@PutSpMsgSkip1:}
  220.         {(a16+a18)<a12:@PutSpMsgSkip1:}
  221.         {(a12+a14)<a16:@PutSpMsgSkip1:}
  222.         !a30:FALSE!
  223.         }
  224. *PutSpMsgSkip1:
  225.     CC a11,a12,a13,a14,a11+XSize,a12+YSize:
  226.     CK 1,a11+XSize,a12+YSize,a13,a14,SelStrColor,224,0,0:
  227.     CB a11+1+XSize,a12+1+YSize,a13-1,a14-1,SelStrColor:
  228.     CB a11  +XSize,a12  +YSize,a13-1,a14-1,StrFontColor:
  229.  
  230.     !a07:0!
  231.     ~SetFSize a06:
  232.     ~SetFColor StrFontColor:
  233.     < a03,SpDatStrTop[a02],SpDatStrTop[a02]+SpDatStrSize[a02]-1,1,1:
  234.         T a11+XSize+8,a12+YSize+8+a07:
  235.         X a03:
  236.         !a07:a07+a06+StrYSpace!
  237.         >
  238.  
  239.     CC a11+XSize,a12+YSize,a13,a14,a11,a12:
  240.  
  241.     ~GetKey:
  242.     <@ Mkd\0:\PushSpMsgGetKey:>
  243.     <@ Mkd=0:\PushSpMsgGetKey:>
  244.     <@ Mkd\0:\PushSpMsgGetKey:>
  245.  
  246.     CC a11      ,a12+YSize,a13,a14,a11,a12:
  247.     ~SetFSize StrFontSize:
  248.     ~SetFColor StrFontColor:
  249.     UG a01,30:
  250.     ~0,0:
  251.  
  252. *PushSpMsgGetKey:
  253.     ~GetKey:
  254.     { a30=TRUE:~PutPushKeyWaitSub:}
  255.     \0:
  256.  
  257.  
  258. ;================================================================================
  259.  
  260. *SpStrTbl:
  261.     _SpKeyStrTbl:
  262.     _SpStr01:
  263.     _SpStr02:
  264.     _SpStr03:
  265.     _SpStr04:
  266.     _SpStr05:
  267.     _SpStr06:
  268.     _SpStr07:
  269.     _SpStr08:
  270.     _SpStr09:
  271.     _SpStr10:
  272.     _SpStr11:
  273.     _SpStr12:
  274.     _SpStr13:
  275.     _SpStr14:
  276.     _SpStr15:
  277.     _SpStr16:
  278.     _SpStr17:
  279.     _SpStr18:
  280.     _SpStr19:
  281.     _SpStr20:
  282.     _SpStr21:
  283.     _SpStr22:
  284.     _SpStr23:
  285.     _SpStr24:
  286.     _SpStr25:
  287.     _SpStr26:
  288.     _SpStr27:
  289.     _SpStr28:
  290.     _SpStr29:
  291.  
  292. *SpKeyStrTbl:
  293.     "éméuéréxérésédélü|éìéëéÄéë"    ;SpStr01
  294.     "ü`éq"                            ;SpStr02
  295.     "ü`ébéjéq"                        ;SpStr03
  296.     "ü`ébéjé`"                        ;SpStr04
  297.     "ü`é`ébéf"                        ;SpStr05
  298.     "ü`éaébéf"                        ;SpStr06
  299.     "ü`ébébéf"                        ;SpStr07
  300.     "é┬é«é▌"                        ;SpStr08
  301.     "ü`érédékésénéo"                ;SpStr09
  302.     "ü`édécéq"                        ;SpStr10
  303.     "ü`érédékédéméc"                ;SpStr11
  304.     "ü`éb"                            ;SpStr12
  305.     "ü`éj"                            ;SpStr13
  306.     "ü`éjéo"                        ;SpStr14
  307.     "ü`é`"                            ;SpStr15
  308.     "ü`éséq"                        ;SpStr16
  309.     "ü`éséb"                        ;SpStr17
  310.     "ü`éfér"                        ;SpStr18
  311.     "ü`éfés"                        ;SpStr19
  312.     "ü`édér"                        ;SpStr20
  313.     "ü`édéc"                        ;SpStr21
  314.     "ü`édéf"                        ;SpStr22
  315.     "ü`éoésénéo"                    ;SpStr23
  316.     "ü`éoédéméc"                    ;SpStr24
  317.     "ü`ébéfébékéq"                    ;SpStr25
  318.     "ü`éféf"                        ;SpStr26
  319.     "âXâvâëâCâgébéf"                ;SpStr27
  320.     "âtâïâTâCâYébéf"                ;SpStr28
  321.     "ü`ü`éqédér"                    ;SpStr29
  322.     "ü^ü^ü^"                        ;End-Code
  323.  
  324. *SpStr01:
  325.     "é`éîéëéâéàéréÅéåéöü@âVâiâèâIâfâRü[â_ü["
  326.     "éréxérésédéléRéTÅπé┼ô«ì∞é╖éΘârâWâàâAâï"
  327.     "âmâxâïɺîΣâVâiâèâIâvâìâOâëâÇé╠Äûé┼é╖üB"
  328.     "âAâèâXé╠è┘éSéTéUôαé╠âAâgâëâNüüâiâNâAé¬"
  329.     "é▒é╠âVâXâeâÇé┼ô«ì∞é╡é─éóé▄é╖üB"
  330.     "êΩòöé╠ï@ö\é¬Ägùpé┼é½é╚éóûöé═ɺî└é│éΩé─"
  331.     "éóéΘé╜é▀éìéëéÄéëé╞é╚é┴é─éóé▄é╖üB"
  332.     "ü^ü^ü^"
  333.  
  334. *SpStr02:
  335.     "ëⁿìsé╡é▄é╖üB"
  336.     "ü^ü^ü^"
  337. *SpStr03:
  338.     "ò╢ÄÜò\Īâoâbâtâ@ôαé╠âfü[â^é≡ò\Īé╡é─é⌐éτüAâLü[ôⁿù═é≡æ╥é┐üA"
  339.     "ëⁿìsé╡é▄é╖üB"
  340.     "ü^ü^ü^"
  341. *SpStr04:
  342.     "ò╢ÄÜò\Īâoâbâtâ@ôαé╠âfü[â^é≡ò\Īé╡é─é⌐éτüAâLü[ôⁿù═é≡æ╥é┐üA"
  343.     "âyü[âWé≡âNâèâAé╡é▄é╖üiăé╠âyü[âWé╓Éié▌é▄é╖üjüB"
  344.     "ü^ü^ü^"
  345. *SpStr05:
  346.     "âXâvâëâCâgébéfé≡ò\Īé╡é▄é╖üB"
  347.     "ü^ü^ü^"
  348. *SpStr06:
  349.     "öwîiébéfé≡ò\Īé╡é▄é╖üB"
  350.     "ü^ü^ü^"
  351. *SpStr07:
  352.     "âtâïâTâCâYébéfé≡ò\Īé╡é▄é╖üB"
  353.     "ü^ü^ü^"
  354. *SpStr08:
  355.     "é┬é«é▌üAéóéóé┴é╖é╦ü[üBéΓé┴é╧üAé┬é«é▌é┴é╖éµüAé┬é«é▌üB"
  356.     "ü^ü^ü^"
  357. *SpStr09:
  358.     "æIæ≡ÄêèJÄnâRâ}âôâhé┼é╖üBü`érédékédémécé▄é┼é≡æIæ≡Äêé╔é╡é▄é╖üB"
  359.     "ü^ü^ü^"
  360. *SpStr10:
  361.     "æIæ≡ÄêÆåé╠ü`éqüFâRâ}âôâhé┼é╖üBæIæ≡ÄêÆåé═ü`éqüFé╠ò╧éφéΦé╔"
  362.     "é▒éΩé≡Ägùpé╡é▄é╖üB"
  363.     "ü^ü^ü^"
  364. *SpStr11:
  365.     "æIæ≡ÄêÅIù╣âRâ}âôâhé┼é╖üBò╧ÉöüFæIæ≡îïë╩é╔îïë╩é¬ò╘éΦé▄é╖"
  366.     "ü^ü^ü^"
  367. *SpStr12:
  368.     "ò╢ÄÜò\Īâoâbâtâ@ôαé╠âfü[â^é≡ò\Īé╡é▄é╖üB"
  369.     "ü^ü^ü^"
  370. *SpStr13:
  371.     "âLü[æ╥é┐é╡é▄é╖üB"
  372.     "ü^ü^ü^"
  373. *SpStr14:
  374.     "âLü[æ╥é┐é╡é▄é╖üBü`éjüFé╞êßéñé╠é═üAüuî⌐é╜ò╢Å═é═æ¼é¡üvé┼"
  375.     "âRâ}âôâhé¬âXâLâbâvé│éΩéΘé⌐é╟éñé⌐é┼é╖üBéjâRâ}âôâhé═üA"
  376.     "âXâLâbâvé│éΩé▄é╖é¬üAéjéoâRâ}âôâhé═é│éΩé▄é╣é±üB"
  377.     "ü^ü^ü^"
  378. *SpStr15:
  379.     "âyü[âWé≡âNâèâAé╡é▄é╖üBéréxérésédéléRéTé╠âRâ}âôâhé╠é`âR"
  380.     "â}âôâhé═üAâLü[æ╥é┐é╡é▄é╖é¬üAéméuéréxérésédélü|éìéëéÄéë"
  381.     "é╠ÅΩìçé═üAâLü[æ╥é┐é╡é▄é╣é±üBÆ╩Åφé═ü`éjéoâRâ}âôâhé╞ò╣ùp"
  382.     "é╡é─Ägùpé╡é─é¡é╛é│éóüB"
  383.     "ü^ü^ü^"
  384. *SpStr16:
  385.     "ü`ésébâRâ}âôâhé┼âNâèâAé│éΩé╜ò╢ÄÜâZâïé≡û▀é╡é▄é╖"
  386.     "ü^ü^ü^"
  387. *SpStr17:
  388.     "ò╢ÄÜâZâïé≡é╟é⌐é╡é▄é╖üB"
  389.     "ü^ü^ü^"
  390. *SpStr18:
  391.     "âOâëâtâBâbâNâZâïâoâbâtâ@é≡æÇì∞é╡é▄é╖üB"
  392.     "ü^ü^ü^"
  393. *SpStr19:
  394.     "âOâëâtâBâbâNâZâïâoâbâtâ@é╠ôαùeé≡ëµû╩é╔ö╜ëfé╡é▄é╖üB"
  395.     "ü^ü^ü^"
  396. *SpStr20:
  397.     "æIæ≡ÄêèJÄnâRâ}âôâhé┼é╖üBê°Éöé═é╗é╠æIæ≡Äêé¬æIé╬éΩé╜é╞é½"
  398.     "ë╜ö╘é≡ò╘é╖é⌐üiüüæIæ≡Äêö╘ìåüjé╞éóéñé╠é≡ÆΦï`é╡é▄é╖üBé╚é¿"
  399.     "ê°Éöé¬éOé╠ÅΩìçé═ô┴ò╩Åêù¥é┼üAêΩìsûêé╔æIæ≡Äêö╘ìåé¬ü{éPé│"
  400.     "éΩé─ìsé½é▄é╖üB"
  401.     "ü^ü^ü^"
  402. *SpStr21:
  403.     "æIæ≡ÄêÅIù╣âRâ}âôâhé┼é╖üAédérâRâ}âôâhé⌐éτédécé▄é┼é≡æIæ≡"
  404.     "Äêé╞é╡é─é▌é╚é╡é▄é╖üB"
  405.     "ü^ü^ü^"
  406. *SpStr22:
  407.     "æIæ≡Äêé≡Ä└ì█é╔âIü[âvâôé╖éΘâRâ}âôâhé┼é╖üBû▀éΦÆlé═üAéªéτ"
  408.     "é╬éΩé╜æIæ≡Äêö╘ìåé┼é╖üB"
  409.     "ü^ü^ü^"
  410. *SpStr23:
  411.     "âyü[âWö╘ìåé╠É▌ÆΦé≡é╡é▄é╖üB"
  412.     "ü^ü^ü^"
  413. *SpStr24:
  414.     "âyü[âWé╠ÅIéφéΦé≡Īé╡é▄é╖üB"
  415.     "ü^ü^ü^"
  416. *SpStr25:
  417.     "ëµû╩é╔ò\Īé│éΩé─éóéΘébéfé≡âNâèâAé╡é▄é╖üB"
  418.     "üiâOâëâtâBâbâNâoâbâtâ@ôαé╠âfü[â^é≡âNâèâA"
  419.     "é╡é▄é╖üB"
  420.     "ü^ü^ü^"
  421. *SpStr26:
  422.     "ëµû╩âGâtâFâNâgé≡É▌ÆΦé╡é▄é╖üB"
  423.     "ü^ü^ü^"
  424. *SpStr27:
  425.     "âQü[âÇÆåé╔é¿é»éΘÉlò¿ôÖüAébéfé╠êΩòöò¬é¬ôºé»é─ò\Īé│éΩéΘ"
  426.     "ébéfé╠é▒é╞é┼é╖üB"
  427.     "ü^ü^ü^"
  428. *SpStr28:
  429.     "éméuéìéëéÄéëé╠ÅΩìçé┼é═üAéUéSéOéÿéSéWéOâTâCâYé╠ébéfé╠Äû"
  430.     "é≡âtâïâTâCâYébéfé╞î─é±é┼éóé▄é╖"
  431.     "ü^ü^ü^"
  432. *SpStr29:
  433.     "è╓Éöé⌐éτé╠û▀éΦÆlé¬éáéΘé▒é╞é≡Īé╡é─éóé▄é╖üBÅ┌é╡é¡é═"
  434.     "éréxérésédéléRéTé╠â}âjâàâAâïé≡ÄQÅ╞é╡é─é¡é╛é│éó"
  435.     "ü^ü^ü^"
  436.