home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SeeIn AO
/
ALICE-CD.BIN
/
Šj”ƒlƒbƒg�•‚»‚Ì‘¼
/
nv_mini
/
source
/
nvstr.adv
< prev
next >
Wrap
Text File
|
1998-08-31
|
10KB
|
415 lines
;================================================================================
; NVSYSTEM-mini ò╢ÄÜù±è╓îW programmed by ALICE SOFT
;================================================================================
;================================================================================
; InitStr(),RemoveStr(),InitStrArray()
**InitStr:
US a01,30:
~SwitchGetStrMode TRUE:
~SwitchPutStrMode FALSE:
~InitStrVarArray:
~SetFDec StrDecNum,StrDecColor:
~InitSfComStr:
~InitSpStr:
UG a01,30:
~0,0:
**RemoveStr:
~SwitchGetStrMode FALSE:
~SwitchPutStrMode TRUE:
~0,0:
**InitStrVarArray:
US a01,30:
DF sX[0] ,sMax,0:
DF sY[0] ,sMax,0:
DF sStrNum[0],sMax,0:
DF sStrOff[0],sMax,0:
DF sAttr[0] ,sMax,0:
DF sFSize[0] ,sMax,0:
DF sFColor[0],sMax,0:
DF sSpFlag[0],sMax,0:
DF sSpeed[0] ,sMax,0:
!StrCurX:0!
!StrCurY:0!
!StrCurXCrd:StrXOff!
!StrCurYCrd:StrYOff!
!StrCurNum:StrBuffTop!
< a01,StrBuffTop,StrBuffTop+StrBuffSize-1,1,1: ;ò╢ÄÜù±èiö[âoâbâtâ@é╠Åëè·ë╗
MS a01,: ;
> ;
UG a01,30:
~0,0:
;================================================================================
**InitSfComStr:
US a01,30:
< a01,SfComStrTop,SfComStrTop+2,1,1:
MS a01,üméméÅü@ébéÅéìéìéàéÄéöün:
>
UG a01,30:
~0,0:
;================================================================================
; SetNextLine(),SetNextPage()
**SetNextLine:
US a01,30:
!StrCurX:0!
!StrCurY:StrCurY+1!
!StrCurXCrd:StrXOff!
!StrCurNum:StrCurNum+1!
!a02:StrFontSize!
< a01,0,StrXMax-1,1,1: ;æOé╠ìsé┼êΩö╘æσé½é⌐é┴é╜
~GsP a01,StrCurY-1:~~sP: ;âtâHâôâgâTâCâYé≡Æ▓é╫éΘ
{ a02<sFSize[sP]:!a02:sFSize[sP]!} ;
> ;
!StrCurYCrd:StrCurYCrd+a02+StrYSpace!
{ SelMode=1:!CurSelCount:CurSelCount+1!};
UG a01,30:
~0,0:
**SetNextPage:
~InitStrVarArray:
~ClearSpArray:
~PageClear:
~0,0:
;================================================================================
; CheckTmpStr(),CheckLastStr()
**CheckTmpStr:
ML Res,StrTmpBuff:
~0,Res:
**CheckLastStr:
US a01,30:
~GsP StrCurX,StrCurY:~~a01:
< a02,a01,0,0,1:
{(sAttr[a02]&0x0100)\0:!Res:a02!@CheckLastStrOut:}
>
!Res:0!
*CheckLastStrOut:
UG a01,30:
~0,Res:
;================================================================================
; SetStrFont(),SetStrColor()
**SetStrFont f01: ZM f01:~0,0:
**SetStrColor f01: ZC 1,f01:~0,0:
;================================================================================
; SetStrArray:
**SetStrArray:
US a01,30:
~CheckTmpStr:~~a01:
!a02:StrCurX!
!a04:StrCurY!
{ StrCurX=0:
{ CurSelCount\0:!slDat[StrCurY]:CurSelCount!}}
{ a01\NULL:
MA StrCurNum,StrTmpBuff:
MS StrTmpBuff,:
< a03,a02,a02+a01-1,1,1:
~GsP a03,a04:~~sP:
{(StrCurXCrd+StrFontSize)>(StrXOff+StrXLen):
MS DebugMsgStr,éwì└òWé¬Æ┤éªé▄é╡é╜:
~DebugMsgPut DebugMsgStr:
@SetStrArraySkip:}
{(StrCurYCrd+StrFontSize+StrYSpace)>(StrYOff+StrYLen):
MS DebugMsgStr,éxì└òWé¬Æ┤éªé▄é╡é╜:
~DebugMsgPut DebugMsgStr:
@SetStrArraySkip:}
{(a03>StrXMax)+(a03=StrXMax):
MS DebugMsgStr,özù±éwùvæfé¬Æ┤éªé▄é╡é╜:
~DebugMsgPut DebugMsgStr:
@SetStrArraySkip:}
{(a04>StrYMax)+(a04=StrYMax):
MS DebugMsgStr,özù±éxùvæfé¬Æ┤éªé▄é╡é╜:
~DebugMsgPut DebugMsgStr:
@SetStrArraySkip:}
!sX[sP]:StrCurXCrd!
!sY[sP]:StrCurYCrd!
!sStrNum[sP]:StrCurNum!
!sStrOff[sP]:a03!
!sAttr[sP]:1!
!sFSize[sP]:StrFontSize!
!sFColor[sP]:StrFontColor!
!StrCurX:StrCurX+1!
!StrCurXCrd:StrCurXCrd+StrFontSize!
!sSpFlag[sP]:FALSE!
!sSpeed[sP]:StrCurPutTime!
*SetStrArraySkip:
>
~CheckSpStr a02,a04:
}
UG a01,30:
~0,0:
;================================================================================
; PutStrArray(),SearchTopsP()
**PutStrArray:
US a01,30:
{(GrpRewriteFlag=TRUE):
~SetGrpToDib:
CC XSize,0,XSize,YSize,0,YSize:
~SetStrToDib:
~Cp 0,YSize,XSize,YSize,0,0:
!GrpRewriteFlag:FALSE!
!StrHideFlag:FALSE!
}
{(GrpRewriteFlag=FALSE)*(StrHideFlag=TRUE):
CC XSize,0,XSize,YSize,0,YSize:
~SetStrToDib:
~Cp 0,YSize,XSize,YSize,0,0:
!StrHideFlag:FALSE!}
~SearchTopsP:~~Res:
{ Res=0xffff:@PutStrArrayOut:}
!a01:Res&0x00ff!
!a02:(Res&0xff00)/0x0100!
~PutStrArraySub a01,a02:
*PutStrArrayOut:
UG a01,30:
~0,0:
**SearchTopsP:
US a01,30:
< a02,0,StrYMax-1,1,1: ;Åæé½Åoé╡ê╩Æué≡Æ▓é╫éΘ
< a01,0,StrXMax-1,1,1: ;
~GsP a01,a02:~~sP: ;
{((sAttr[sP]&0x0100)=0)*(sAttr[sP]&0x00ff): ;
!Res:a02*0x0100+a01! ;
@SearchTopsPOut:} ;
> ;
> ;
!Res:0xffff! ;
*SearchTopsPOut:
UG a01,30:
~0,Res:
;; ü½ü½ü½ü@é▒éΩé¬NVSYSTEM-minié╠ÉSæƒòöé┼é╖üBü@ü½ü½ü½
**PutStrArraySub f01,f02:
US a01,30:
NB a01,f01,2: ;(a01,a02)Åæé½ì₧é▌éwüCéx
!a03:StrFontSize! ; a03 = âtâHâôâgâTâCâY
!a04:StrFontColor! ; a04 = âtâHâôâgâJâëü[
~SetFSize a03: ;
~SetFColor a04: ;
~GsP StrCurX,StrCurY:~~a30:
*PutStrArraySubMainLoop:
~TimerSet 0:
~GetKey:
~CheckShiftKey:
*PutStrArraySubMainLoop0:
~GsP a01,a02:~~sP:
!a29:slDat[a02]!
~GetRpFlag CurRPage:~~a28:
~GetIxResult:~~a27:
~GetRp CurRPage:~~a26:
{(a26=FALSE)*(a27=TRUE):
~SetIxResult FALSE:~~a27:
}
{ sP<a30:
{(sAttr[sP]&0x00ff)=0:!a01:0!!a02:a02+1!@PutStrArraySubMainLoop0:}
{ sFSize[sP]\a03:~SetFSize sFSize[sP]:!a03:sFSize[sP]!}
{ sFColor[sP]\a04:~SetFColor sFColor[sP]:!a04:sFColor[sP]!}
*PutStrArraySubMainLoop0a:
{ a29\0: @PutStrArraySubMainLoop0b:} ;æIæ≡Äê
{ sSpeed[sP]=0: @PutStrArraySubMainLoop0b:} ;ò╢ÄÜâXâsü[âhé¬éO
{ a27=TRUE: @PutStrArraySubMainLoop0b:} ;ăé╠æIæ≡Äêé▄é┼Éié▐on
{ a28=TRUE: @PutStrArraySubMainLoop0b:} ;êΩôxî⌐é╜ò╢Å═é═æ¼é¡
{ CopyEffect\0: @PutStrArraySubMainLoop0a1:} ;âRâsü[âGâtâFâNâgoné╚éτ
{ Mkd\0: @PutStrArraySubMainLoop0b:} ;âLü[ôⁿù═éáéΦ
*PutStrArraySubMainLoop0a1: ;êΩò╢ÄÜé╕é┬ò\Ī
MS StrTmpBuff-1,:
ME StrTmpBuff-1,0,sStrNum[sP],sStrOff[sP],1:
T sX[sP],sY[sP]+YSize:
X StrTmpBuff-1:
{ sSpFlag[sP]\FALSE:~PutSpLine sX[sP],sY[sP]+YSize,sFSize[sP]:}
US CopyEffect,2:
~Cp sX[sP],sY[sP]+YSize,sFSize[sP]+2,sFSize[sP]+2,sX[sP],sY[sP]:
UG CopyEffect,2:
{(CopyEffect=1000)+(CopyEffect=1001):!CopyEffect:0!!CopyEffectTime:0!}
!sAttr[sP]:(sAttr[sP]|0x0100)!
!a01:a01+1!
!Res:0!<@ Res<sSpeed[sP]:~TimerGet:~~Res:>
@PutStrArraySubMainLoop:
*PutStrArraySubMainLoop0b: ;êΩìsé▄é╞é▀é─ò\Ī
!a05:sX[sP]!!a06:sY[sP]!
!a07:0!!a08:sFSize[sP]!
<@ (sAttr[sP]&0x00ff)\0:
{ sFSize[sP]\a03:~SetFSize sFSize[sP]:!a03:sFSize[sP]!
{ a08<sFSize[sP]:!a08:sFSize[sP]!}}
{ a29=0:{ sFColor[sP]\a04:~SetFColor sFColor[sP]:!a04:sFColor[sP]!}}
{ a29\0:{ SelStrColor\a04:~SetFColor SelStrColor:!a04:SelStrColor!}}
MS StrTmpBuff-1,:
ME StrTmpBuff-1,0,sStrNum[sP],sStrOff[sP],1:
{(sX[sP]>XSize)+(sY[sP]>YSize):
~DebugNumPutData sP,0:
IK 0:
}
T sX[sP],sY[sP]+YSize:
X StrTmpBuff-1:
{ sSpFlag[sP]\FALSE:~PutSpLine sX[sP],sY[sP]+YSize,sFSize[sP]:}
!sAttr[sP]:(sAttr[sP]|0x0100)!
!a07:a07+sFSize[sP]!
!a01:a01+1!
~GsP a01,a02:~~sP:
>
{(a05+a07>XSize):!a07:XSize-a05!}
~Cp a05,a06+YSize,a07,a08+StrYSpace,a05,a06:
!a01:0!
!a02:a02+1!
@PutStrArraySubMainLoop0:
}
!CopyEffect:0!!CopyEffectTime:0! ;Åπé┼üAæ╥ö≡é╡é─éóéΘÅΩìçé¬éáéΘé╠é┼
;é▒é▒é┼âNâèâA
*PutStrArraySubOut:
UG a01,30:
~0,0:
;================================================================================
; CheckGetStrMode(),SwitchGetStrMode(Sw),CheckPutStrMode(),SwitchPutStrMode(Sw)
**CheckGetStrMode:
~0,GetStrFlag:
**SwitchGetStrMode f01:
US a01,30:
NB a01,f01,1:
!Res:GetStrFlag!
{ a01=TRUE:
MG 0,TRUE:
MG 1,StrTmpBuff:
MG 2,1:
MG 3,3:
MG 4,0:
!GetStrFlag:TRUE!
}
{ a01\TRUE:
MG 0,FALSE:
!GetStrFlag:FALSE!
}
UG a01,30:
~0,GetStrFlag:
**CheckPutStrMode:
~0,PutStrFlag:
**SwitchPutStrMode f01:
US a01,30:
NB a01,f01,1:
!Res:PutStrFlag!
MG 100,a01:
UG a01,30:
~0,Res:
;================================================================================
; GsP(sX,sY)::out ~~Res = pointer
; GsPR pointer::out ~~Res = X+Y*0x100
**GsP f01,f02: ~0,f01+f02*StrXMax:
**GsPR f01:
US a01,30:
NB a01,f01,1:
!a02:a01-(a01/StrXMax)*StrXMax!
!a03:a01/StrXMax!
!Res:a02+a03*0x100!
UG a01,30:
~0,Res:
;================================================================================
; SetFSize(),SetFColor()
**SetFSize f01:
{ f01=0:
MS DebugMsgStr,âtâHâôâgâTâCâYé¬éOé┼é╖:
~DebugMsgPut DebugMsgStr:
@SetFSizeOut:}
ZM f01:
*SetFSizeOut:
~0,0:
**SetFColor f01:
{(f01<16)+(f01>(255-16)):
MS DebugMsgStr,âVâXâeâÇâJâëü[é≡Ägùpé╡é─éóé▄é╖:
~DebugMsgPut DebugMsgStr:
@SetFColorOut:}
ZC 1,f01:
*SetFColorOut:
~0,0:
**SetFDec f01,f02:
{(f01>10)+(f01=5):
MS DebugMsgStr,ò╢ÄÜæòÅⁿâ^âCâvé═éOü`éSüAéUü`éPéOé┼é╖:
~DebugMsgPut DebugMsgStr:
@SetFDecOut:}
ZA 0,f01:
{(f02<16)+(f02>(255-16)):
MS DebugMsgStr,âVâXâeâÇâJâëü[é≡Ägùpé╡é─éóé▄é╖:
~DebugMsgPut DebugMsgStr:
@SetFDecOut:}
ZA 1,f02:
*SetFDecOut:
~0,0:
;===============================================================================
**SetStrToDib:
US a01,30:
!a03:StrFontSize!
!a04:StrFontColor!
~SetFSize a03:
~SetFColor a04:
< a02,0,StrYMax-1,1,1:
!a05:slDat[a02]!
< a01,0,StrXMax-1,1,1:
~GsP a01,a02:~~sP:
{(sAttr[sP]&0x0100)\0:
{ a03\sFSize[sP]:~SetFSize sFSize[sP]:!a03:sFSize[sP]!}
{ a05=0:{ a04\sFColor[sP]:~SetFColor sFColor[sP]:!a04:sFColor[sP]!}}
{ a05\0:{ a04\SelStrColor:~SetFColor SelStrColor:!a04:SelStrColor!}}
MS StrTmpBuff-1,:
ME StrTmpBuff-1,0,sStrNum[sP],sStrOff[sP],1:
T sX[sP],sY[sP]+YSize:
X StrTmpBuff-1:
{ sSpFlag[sP]\FALSE:~PutSpLine sX[sP],sY[sP]+YSize,sFSize[sP]:}
}
>
>
UG a01,30:
~0,0:
;===============================================================================
**GetRpFlag f01:
US a01,30:
NB a01,f01,1:
{ FastReadFlag=FALSE:!Res:FALSE!@GRpOut:}
!Res:RpFlag[a01]!
*GRpOut:
UG a01,30:
~0,Res:
**GetRp f01:~0,RpFlag[f01]: