#50366 - 2000-06-27 08:58 PM
Compiler / formatter for Kix-scripts
|
kholm
Korg Regular
   
Registered: 2000-06-19
Posts: 714
Loc: Randers, Denmark
|
[Moderator (Sealeopard): Closed topic]
Transform.kix
This script can be used to 'compile', format, 'encrypt' or compress other scripts.
Added support for Pseudo-encryption
Pseudo-encryption When Indent = 0, and KeepRemarks=N and KeepEmptyLines=N (Choices you make when executing Transform.kix) Transform.kix will enter pseudo-encryptionmode, lines can be until 500 characters long, each linefeed from original script is replaced by a random white space: Space, tab, or new line character.
The transformed script will be nearly impossible to read if it is not too small. You can still read the script, but average users will not be able to understand the script, and it will take a lot of effort to recreate it witout the original source, at least the remarks are lost.
The advantage of this form of 'encryption' is that it is time-costless when executing the script.
COMPILING 'Compile' dos not create an exe-file, but the script that is transformed is checked for syntax-errors.
The script will check that strings are correctly terminated, and check that loops and conditions are correctly terminated. (No missing If, EndIf, Select, EndSelect, While, Loop, Do and Until statements). Labels are checked for GoTo and GoSub statements
The script requires some coding diciplin in the script you want to compile.
Requirements:
Reserved words: - DO
- ELSE
- ENDIF
- SELECT
- ENDSELECT
- LOOP
Must be the only word in the line. (Can be followed by a remark) Strings must end in the line where they start. Meaning, if you have " as the first stringdelimitor " must be present later in this line, the same goes for the delimitor '
Tip: Best results are achieved, if you have only one statement in each line, but this is not required.
FORMATTING The script can also be used to format scripts you have made by cut and paste from this or other sites, same indent in entire script. If indents dos not exist this script will create them.
COMPRESSING A third way to use the script is to use it for compressing scripts, it can remove blank lines and comments, and remove indents (Indent = 0)
The script allways creates a new file with extension .kix, so if your script is named Logon.kix the script will create the transformed script Logon.kix.kix
CLEANING Lines will allways be stripped for leading and trailing spaces and tabs.
The script Transform.kix in this post is transformed (by itself) Logfile for this transform:
T R A N S F O R M L O G
Inputfile : Transform Outputfile : Transform.kix
OPTIONS USED Indent : 3 spaces Remarks kept Empty lines kept
Transform.kix successfully created, no errors found.
TIP Keep the script in the same folder as the script you want to transform, then you only have to enter the filename, otherwise you must enter path and filename
Examle log for a script containing errors
T R A N S F O R M L O G
Inputfile : TestError Outputfile : TestError.kix
OPTIONS USED Indent : Tabulator Remarks kept Empty lines removed
Error(s): Mismatching stringdelimitors in line 55 Missing If statement before line 119 Missing 1 EndIf statement(s) Subroutine (label) missing for GoSub GETXY in line 444
TestError.kix created with 4 Error(s) Correct errors in TESTERROR and transform again
Errors are easier to find in TESTERROR.KIX if you are using indents > 2 or indent = tabulator.
code:
; Script : Transform.kix ; Purpose: Check other scripts ; 'COMPILE' (Syntakschecking: Strings, labels, loops and conditions are checked) ; 'CLEANUP' (Remove leading and trailing spaces and tabs) ; Options: ; 'TRANSFORM' (Same indent in entire script) ; 'COMPRESS' (Remove remarks and blank lines) ; Version 1.7 June 30 2000 Erik Krholm (Erik Kaerholm)
Break On
; Constants $CRLF = Chr(13) + Chr(10) $True = -1 $False = 0 $StrSep1 = "'" $StrSep2 = '"' $LogFile = %TEMP% + "\Transform.log"
; Labelstatistic-vars Dim $LabUsed[100] $LabUsedNum = 0
Dim $LabDefined[100] $LabDefinedNum = 0
Dim $SubCalled[100] $SubCalledNum = 0
; Initialize Color W+/b $IndentNbr = 0 $LineNum = 0 $ErrorsFound = $False $Compress = $False $LongLine = "" $ErrorNum = 0 $TotErr = 0 $Do = 0 $If = 0 $Select = 0 $While = 0
$Err = SetConsole("Maximize")
; *********************** Get user input ************************** Do CLS Box (1,1,3,78,"SINGLE") AT (2,21) "T R A N S F O R M S C R I P T"
AT (5,5) "Script to transform : " GetS $File
$Err = Open(1,"$File") Until $Err = 0
$OutFile = $File + ".kix" $Err = SetFileAttr($OutFile, 128) If $Err = 0 AT (7,5) "Overwrite " + $OutFile + " Y/N " Do Get $x If UCase($x) = "N" Quit EndIf Until Ucase($x) = "Y" "Y" EndIf
$Indent = "" AT (9,5) "Indent (T = Tabulator, 0..9 = number of spaces) : " Do Get $IndentIn $IndentIn = UCase($IndentIn) If $IndentIn = "T" $Indent = Chr(9) Else $Test = Val($IndentIn) If $Test > 0 $i = 0 While $i < $Test $Indent = $Indent + " " $i = $i + 1 Loop EndIf EndIf Until $Indent <> "" Or $IndentIn = 0 $IndentIn
AT (11,5) "Keep remarks Y/N " Do Get $x $x = UCase($x) Until ($x = "Y") Or ($x = "N") $x If $x = "Y" $KeepRemarks = $True Else $KeepRemarks = $False EndIf
AT (13,5) "Keep empty lines Y/N " Do Get $x $x = UCase($x) Until ($x = "Y") Or ($x = "N") $x If $x = "Y" $KeepEmptyLines = $True Else $KeepEmptyLines = $False EndIf
If $IndentIn = 0 And $KeepRemarks = $False And $KeepEmptyLines = $False $Compress = $True $Seed = Val(SubStr("@Time",7,2)) $Seed=$Seed+1 Do $x = Rnd(1) $Seed = $Seed - 1 Until $Seed=0 EndIf
AT (17,5) "Transforming ..........."
Del "$OutFile" $Err = Open(2,"$OutFile",5)
; ******************** Initiate logfile ************************* Del "$LogFile" $Err = Open(3,"$LogFile",5) $Err = WriteLine(3," T R A N S F O R M L O G" + $CRLF + $CRLF) $Err = WriteLine(3,"Inputfile : " + $File + $CRLF) $Err = WriteLine(3,"Outputfile : " + $OutFile + $CRLF + $CRLF) $Err = WriteLine(3,"OPTIONS USED" + $CRLF) $Err = WriteLine(3," Indent : ")
$IndentIn = "" + $IndentIn Select Case $IndentIn = "T" $Err = WriteLine(3,"Tabulator" + $CRLF) Case $IndentIn = "0" $Err = WriteLine(3,"NONE" + $CRLF) Case 1 $Err = WriteLine(3,$IndentIn + " spaces" + $CRLF) EndSelect
If $KeepRemarks $Err = WriteLine(3," Remarks kept" + $CRLF) Else $Err = WriteLine(3," Remarks removed" + $CRLF) EndIf
If $KeepEmptyLines $Err = WriteLine(3," Empty lines kept" + $CRLF + $CRLF) Else $Err = WriteLine(3," Empty lines removed" + $CRLF + $CRLF) EndIf
; ************************ Main loop **************************** $Line = ReadLine(1) While @Error = 0 GoSub Status $LineNum = $LineNum + 1 GoSub WriteOutLine $Line = ReadLine(1) Loop
If $Compress $Err = WriteLine(2, "$LongLine") EndIf
; ****************** Complete and show log ********************** At(17,30) " " ; Remove statussymbol
If $IndentNbr > 0 If $Do > 0 $TotErr = $TotErr + $Do $ErrorNum = $Do $ErrorType = "Until" GoSub ErrorHandler EndIf If $If > 0 $TotErr = $TotErr + $If $ErrorNum = $If $ErrorType = "EndIf" GoSub ErrorHandler EndIf If $Select > 0 $TotErr = $TotErr + $Select $ErrorNum = $Select $ErrorType = "EndSelect" GoSub ErrorHandler EndIf If $While > 0 $TotErr = $TotErr + $While $ErrorNum = $While $ErrorType = "Loop" GoSub ErrorHandler EndIf EndIf
GoSub CheckGoSub GoSub CheckGoTo
$Err = WriteLine(3,$CRLF)
If $ErrorsFound $Err = WriteLine(3,$OutFile + " created with " + $TotErr + " Error(s)" + $CRLF) $Err = WriteLine(3,"Correct errors in " + UCase($File) + " and transform again" + $CRLF + $CRLF) $Err = WriteLine(3,"Errors are easier to find in " + UCase($OutFile) + " if you are using" + $CRLF) $Err = WriteLine(3,"indents > 2 or indent = tabulator.") Else $Err = WriteLine(3,$OutFile + " successfully created, no errors found.") EndIf
$Err = Close(1) $Err = Close(2) $Err = Close(3)
Run "Start /Max NotePad.exe $LogFile"
Return ; End script Transform.kix
;*************** :WriteOutLine ;***************
; Remove leading spaces and tabs While (SubStr($Line,1,1) = " ") Or (SubStr($Line,1,1) = Chr(9)) $Line = SubStr($Line, 2, Len($Line) - 1) Loop
; Remove trailing spaces and tabs While (SubStr($Line,Len($Line),1) = " ") Or (SubStr($Line,Len($Line),1) = Chr(9)) $Line = SubStr($Line, 1, Len($Line) - 1) Loop
; Split code and remarks $TmpLine = $Line $PosRem = 0 GoSub GetPosRem If $PosRem = 0 $TmpLine = $Line GoSub TestStrings EndIf $FrontRem = "" If $PosRem > 0 If $PosRem > 1 $FrontRem = $Indent EndIf $Remark = SubStr($Line, $PosRem , Len($Line) - $PosRem + 1) $Code = SubStr($Line, 1, $PosRem - 1) Else $Remark = "" $Code = $Line EndIf
; Remove trailing spaces and tabs from code While (SubStr($Code,Len($Code),1) = " ") Or (SubStr($Code,Len($Code),1) = Chr(9)) $Code = SubStr($Code, 1, Len($Code) - 1) Loop
; Check if line is empty If $Code = "" And $Remark = "" $LineEmpty = $True Else $LineEmpty = $False EndIf
; Check for reserved, words expected to be entire code $PendingIndent = 0 $NotChecked = $False $Test = UCase($Code) Select Case $Test = "DO" $PendingIndent = 1 $Do = $Do + 1 Case $Test = "ELSE" $PendingIndent = 1 $IndentNbr = $IndentNbr - 1 Case $Test = "ENDIF" If $If > 0 $IndentNbr = $IndentNbr - 1 $If = $If - 1 Else $ErrorType = "If" GoSub ErrorHandler EndIf Case $Test = "SELECT" $Select = $Select + 1 $PendingIndent = 1 $CasePrev = $False Case $Test = "ENDSELECT" If $Select > 0 $IndentNbr = $IndentNbr - 2 $Select = $Select - 1 Else $ErrorType = "Select" GoSub ErrorHandler EndIf Case $Test = "LOOP" If $While > 0 $IndentNbr = $IndentNbr - 1 $While = $While - 1 Else $ErrorType = "While" GoSub ErrorHandler EndIf Case 1 $NotChecked = $True EndSelect
; Check for reserved words expected to be part of code If $NotChecked If SubStr($Test, 1, 3) = "IF " If SubStr($Test, Len($Test) - 5, 6) <> " ENDIF" $PendingIndent = 1 $If = $If + 1 EndIf Else If SubStr($Test, 1, 5) = "CASE " $PendingIndent = 1 If $CasePrev $IndentNbr = $IndentNbr - 1 Else $CasePrev = $True EndIf Else If SubStr($Test, 1, 6) = "UNTIL " If $Do > 0 $IndentNbr = $IndentNbr - 1 $Do = $Do - 1 Else $ErrorType = "Do" GoSub ErrorHandler EndIf Else If SubStr($Test, 1, 6) = "WHILE " $PendingIndent = 1 $While = $While + 1 Else If SubStr($Test, 1, 6) = "GOSUB " $LabName = Ltrim(RTrim(SubStr($Test, 7, Len($Test) - 6))) GoSub SubInfo Else If SubStr($Test, 1, 5) = "GOTO " $LabName = Ltrim(RTrim(SubStr($Test, 6, Len($Test) - 5))) GoSub LabInfo Else If SubStr($Test, 1, 1) = ":" $LabName = SubStr($Test, 2, Len($Test) - 1) GoSub LabDefined EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf
; *********************** Create line *************************** If $Code <> "" $i = 0 $Front = "" While $i < $IndentNbr $Front = $Front + $Indent $i = $i + 1 Loop $Line = $Front + $Code Else $Line = "" EndIf
If ($Remark <> "") And $KeepRemarks If $Line <> "" $Line = $Line + $FrontRem EndIf $Line = $Line + $Remark EndIf
If $Line <> "" If $Compress $Rnd = Rnd(34) Select Case $Rnd < 20 $Del = Chr(9) Case $Rnd < 33 $Del = " " Case 1 $Del = Chr(10) EndSelect $LongLine = $LongLine + $Del + $Line If Len($LongLine) > 500 $LineShift = $True $Line = $LongLine $LongLine = "" Else $LineShift = $False EndIf Else $LineShift = $True EndIf EndIf
If $LineShift If $Line <> "" $Line = $Line + $CRLF Else If $KeepEmptyLines And $LineEmpty $Line = $CRLF EndIf EndIf $Err = WriteLine(2, "$Line") EndIf
$IndentNbr = $IndentNbr + $PendingIndent
Return ; *END SUB* WriteOutLine
;************** :GetPosRem ;************** $TestRem = InStr($TmpLine, ";") If $TestRem > 0 $TstStr1 = InStr($TmpLine, $StrSep1) If $TstStr1 = 0 $TstStr1 = 100000 EndIf $TstStr2 = InStr($TmpLine, $StrSep2) If $TstStr2 = 0 $TstStr2 = 100000 EndIf If $TstStr1 < $TstStr2 $StrSep = $StrSep1 $StartStr = $TstStr1 Else $StrSep = $StrSep2 $StartStr = $TstStr2 EndIf If $StartStr = 100000 $StartStr = 0 EndIf If $StartStr < $TestRem And $StartStr > 0 $PosRem = $PosRem + $StartStr $TmpLine = SubStr($TmpLine, $StartStr + 1, Len($TmpLine) - $StartStr) $TestRem = InStr($TmpLine, ";") $TestEnd = InStr($TmpLine, $StrSep) If $TestEnd > 0 If $TestEnd > $TestRem $PosRem = $PosRem + $TestEnd $TmpLine = SubStr($TmpLine, $TestEnd + 1, Len($TmpLine) - $TestEnd) GoSub GetPosRem Else $PosRem = $PosRem + $TestRem EndIf Else If $ErrorsFound = $False $Err = WriteLine(3,"Error(s):" + $CRLF) EndIf $TotErr = $TotErr + 1 $ErrorsFound = $True $Err = WriteLine(3," Mismatching stringdelimitors in line " + $LineNum + $CRLF) $PosRem = 0 $TmpLine = "" EndIf Else $PosRem = $PosRem + InStr($TmpLine, ";") Endif Else $PosRem = 0 EndIf
Return ;*END SUB* GetPosRem
;************** :TestStrings ;************** $TstStr1 = InStr($TmpLine, $StrSep1) If $TstStr1 = 0 $TstStr1 = 100000 EndIf $TstStr2 = InStr($TmpLine, $StrSep2) If $TstStr2 = 0 $TstStr2 = 100000 EndIf If $TstStr1 < $TstStr2 $StrSep = $StrSep1 $StartStr = $TstStr1 Else $StrSep = $StrSep2 $StartStr = $TstStr2 EndIf If $StartStr = 100000 $StartStr = 0 EndIf If $StartStr > 0 $TmpLine = SubStr($TmpLine, $StartStr + 1, Len($TmpLine) - $StartStr) $TestEnd = InStr($TmpLine, $StrSep) If $TestEnd > 0 $TmpLine = SubStr($TmpLine, $TestEnd + 1, Len($TmpLine) - $TestEnd) GoSub TestStrings Else If $ErrorsFound = $False $Err = WriteLine(3,"Error(s):" + $CRLF) EndIf $TotErr = $TotErr + 1 $ErrorsFound = $True $Err = WriteLine(3," Mismatching stringdelimitors in line " + $LineNum + $CRLF) $TmpLine = "" EndIf EndIf
Return ; *END SUB* TestStrings
;************** :Status ;************** $s = $s + 1 Select Case $s = 1 $Ch = "|" Case $s = 2 $Ch = "/" Case $s = 3 $Ch = "-" Case 1 $Ch = "\" $s = 0 EndSelect At(17,30) $Ch
Return ; *END SUB* Status
;************** :ErrorHandler ;************** If $ErrorsFound = $False $Err = WriteLine(3,"Error(s):" + $CRLF) EndIf If $ErrorNum > 0 $Err = WriteLine(3," Missing " + $ErrorNum + " " + $ErrorType + " statement(s)" + $CRLF) Else $TotErr = $TotErr + 1 $Err = WriteLine(3," Missing " + $ErrorType + " statement before line " + $LineNum + $CRLF) EndIf $ErrorsFound = $True
Return ; *END SUB* ErrorHandler
;************** :SubInfo ;************** If InStr($LabName, $StrSep1) Or InStr($LabName, $StrSep2) $LabName = SubStr($LabName, 2, Len($LabName) - 2) EndIf $SubCalledNum = $SubCalledNum + 1 $SubCalled[$SubCalledNum] = $LabName + "," + $LineNum
Return ; *END SUB* SubInfo
;************** :LabInfo ;************** If InStr($LabName, $StrSep1) Or InStr($LabName, $StrSep2) $LabName = SubStr($LabName, 2, Len($LabName) - 2) EndIf $LabUsedNum = $LabUsedNum + 1 $LabUsed[$LabUsedNum] = $LabName + "," + $LineNum
Return ; *END SUB* LabInfo
;************** :LabDefined ;************** Dim $i, $NotFound $i = 1 $NotFound = $True While $i <= $LabDefinedNum And $NotFound If $LabName = $LabDefined[$i] $NotFound = $False EndIf $i = $i + 1 Loop If $NotFound $LabDefinedNum = $LabDefinedNum + 1 $LabDefined[$LabDefinedNum] = $LabName EndIf
Return ; *END SUB* LabDefined
;************** :CheckGoTo ;************** Dim $i, $j, $Pos, $Len, $NotFound, $TestName, $LineNum, $LabU $i = 1 While $i <= $LabUsedNum $LabU = $LabUsed[$i] $Pos = InStr($LabU, ",") $TestName = SubStr($LabU, 1, $Pos - 1) $NotFound = $True $j = 1 While $j <= $LabDefinedNum And $NotFound If $TestName = $LabDefined[$j] $NotFound = $False EndIf $j = $j + 1 Loop If $NotFound If $ErrorsFound = $False $Err = WriteLine(3,"Error(s):" + $CRLF) EndIf $TotErr = $TotErr + 1 $Len = Len($LabU) $LineNum = SubStr($LabU, $Pos + 1, $Len - $Pos) $Err = WriteLine(3," Label missing for GoTo " + $TestName + " in line " + $LineNum + $CRLF) $ErrorsFound = $True EndIf $i = $i + 1 Loop
Return ; *END SUB* CheckGoTo
;************** :CheckGoSub ;************** Dim $i, $j, $Pos, $Len, $NotFound, $TestName, $LineNum, $SubC $i = 1 While $i <= $SubCalledNum $SubC = $SubCalled[$i] $Pos = InStr($SubC, ",") $TestName = SubStr($SubC, 1, $Pos - 1) $NotFound = $True $j = 1 While $j <= $LabDefinedNum And $NotFound If $TestName = $LabDefined[$j] $NotFound = $False EndIf $j = $j + 1 Loop If $NotFound If $ErrorsFound = $False $Err = WriteLine(3,"Error(s):" + $CRLF) EndIf $TotErr = $TotErr + 1 $Len = Len($SubCalled[$i]) $LineNum = SubStr($SubCalled[$i], $Pos + 1, $Len - $Pos) $Err = WriteLine(3," Subroutine (label) missing for GoSub " + $TestName + " in line " + $LineNum + $CRLF) $ErrorsFound = $True EndIf $i = $i + 1 Loop
Return ; *END SUB* CheckGoSub
[This message has been edited by kholm (edited 30 June 2000).] [ 18. October 2003, 02:32: Message edited by: sealeopard ]
|
|
Top
|
|
|
|
#50368 - 2000-06-29 01:40 AM
Re: Compiler / formatter for Kix-scripts
|
kholm
Korg Regular
   
Registered: 2000-06-19
Posts: 714
Loc: Randers, Denmark
|
Still getting new ideas !CJ - If you read this, I have used your randseed function instead of inventing one myself. Encryption When Indent = 0, and KeepRemarks=N and KeepEmptyLines=N (Choices you make when executing Transform.kix) Transform.kix will enter pseudo-encryptionmode, lines can be until 30.000 characters long, each linefeed from original script is replaced by a random white space: Space, tab, or new line character. The script will be nearly impossible to read if it is not too small. You can still read the script, but average users will not be able to understand the script, and it will take a lot of effort to recreate it witout the original source, at least the remarks are lost. The advantage of this form of 'encryption' is that it is time-costless when executing the script. I have changed the original post, first in this topic, again ! (Top of this page) As an example i include CJ's Battle ships in 'encrypted' form Original script: 2nd KiX game ever!! Size before Compress/encrypt : 13,728 bytes Size after Compress/encrypt : 9,823 bytes
code:
break on $=setascii(on) $seed=val(substr("@time",7,2)) $seed=$seed+1 do $=rnd(1) $seed=$seed-1 until $seed=0 dim $boat[5] dim $name dim $nameA[8] dim $grid[100] dim $boatlen[5] dim $boathit[5] dim $g dim $gy dim $gx dim $ship1[7] dim $ship2[7] dim $ship3[7] $boat[0]="Frigate " $boatlen[0]=2 $boat[1]="Submarine " $boatlen[1]=3 $boat[2]="Cruiser " $boatlen[2]=3 $boat[3]="BattleShip" $boatlen[3]=4 $boat[4]="Carrier " $boatlen[4]=5 $name="Player" $last="o" $lose=0 $path=%TEMP% $random=0 $boathit[0]=0 $boathit[1]=0 $boathit[2]=0 $boathit[3]=0 $boathit[4]=0 $ship1[5]=" \ /" $ship1[6]=" \ /" $ship2[0]=" _" $ship2[1]=" __|_" $ship2[2]=" | 87 |" $ship3[5]=" \ \/ \/ / \/. / " $ship3[6]=" \ .\ \ / /. / " $ship2[3]=" ________|____|________" $ship2[4]=" / ooo -- ooo \" $ship3[3]=" | / \/ \/ | " $ship3[4]=" | \ /\ / /\ /. | " $ship2[5]=" [| -- |" $ship2[6]=" x\______________________/" $ship1[3]="_____|__|___|_____|___|__|____" $ship1[4]="\ 11 . . . . . /" $ship3[0]=" |\ | | /| " $ship3[1]=" | \/\| | | |/\/ | " $ship3[2]=" |/ \ \| |/ / | " $ship1[0]=" |" $ship1[1]=" \ \ __|__ / /" $ship1[2]=" \_\ | | /_/" $i=0 do $grid[$i]=9 $i=$i+1 until $i=100 goto MAIN :intro cls at(12,10) color b+/n "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" color w/n $y=0 do at(5+$y,17) $ship1[$y] at(16+$y,20) $ship2[$y] $y=$y+1 until $y=7 $x=20 do $y=0 do at(16+$y,$x) $ship2[$y] $y=$y+1 until $y=7 $x=$x+1 until $x=30 $y=19 do at($y+1,35) " " at(12,35) color b+/n "~" color w/n at($y,35) "!" at(19,35) "_" at(20,35) "o" at (31-$y,25) " " at(12,25) color b+/n "~" color w/n at(32-$y,25) "o" at(24,79) sleep 1 $y=$y-1 until $y=10 at(21,25) " " at(22,25) "*" $end=50 gosub burn at(22,25) " " color w/n $y=0 do at(5+$y,17) $ship3[$y] $y=$y+1 until $y=7 $end=30 gosub burn color w/n $d=0 do $y=6 at($d+11-$y,17) " " do color w/n at($d+12-$y,17) $ship3[6-$y] $y=$y-1 until $y=$d $end=10 gosub burn $d=$d+1 until $d=6 color w/n $x=30 do $y=0 do at(16+$y,$x) $ship2[$y] $y=$y+1 until $y=7 $x=$x+1 until $x=50 big color w/n at(0,0) "Battle" ? " Ships" small ? ? ? ? ? "Version 1.0" ? "by cj" ? ? ? "Press any key to begin" get$ cls return :burn $c=0 do $a=rnd(3)+8 $b=rnd(10)+27 $s1=rnd(2)+176 $s2=rnd(2)+176 $s3=rnd(2)+176 $col=rnd(2) if $col=0 color r+/n endif if $col=1 color r/n endif if $col=2 color y+/n endif at($a,$b) chr($s1) at($a-1,$b-1) chr($s2) at($a-1,$b+1) chr($s3) $c=$c+1 until $c=$end return :drawgrid $r=3 do at($r,3) " " at($r+1,3) "Ĵ" $r=$r+2 until $r=23 at(2,3) "Ŀ" at(22,3) "" color w/n at(1,4) "A B C D E F G H I J" at(1,4) $i=0 do at(3+2*$i,2) "$i" $i=$i+1 until $i=10 at(2,37) "Battleships" at(3,37) "Version 1.0" at(5,37) "Please enter your name :" $i=0 do $nameA[$i]=" " $i=$i+1 until $i=8 $i=0 do :wrong at(5,62+$i) get $a if $a=chr(13) if $i=0 $name="Chris" endif $i=8 goto leave endif if $a=chr(8) if $i>0 $i=$i-1 endif at(5,62+$i) " " endif if ((asc($a)>47) and (asc($a)<58)) or ((asc($a)>64) and (asc($a)<91)) or ((asc($a)>96) and (asc($a)<123)) at(5,62+$i) $a $nameA[$i]=$a $name="" $i=$i+1 else goto wrong endif :leave until $i=8 $i=0 do if $nameA[$i]<>" " $name=$name+$nameA[$i] endif $i=$i+1 until $i=8 at(5,37) " " at(5,37) "Welcome Commander $name." color w+/n at(7,37) "Enter co-ordinates:" color w/n return :getXY $boatname=$boat[$i] $nogo=0 select case $i=0 color b/n case $i=1 color g/n case $i=2 color c/n case $i=3 color m/n case $i=4 color y/n endselect at(8+$i,37) "$boatname : " :inputcol if $random=1 $gx=rnd(9) $gy=rnd(9) goto calc endif if $bad=0 $j=0 do at(3+2*$j,2) " " $j=$j+1 until $j=10 color w+/n at(1,4) ? color w/n else color w+/n at(9,62) "ABCDEFGHIJ" $z=0 do at(10+$z,61) " " $z=$z+1 until $z=10 endif at(8+$i,41+len($boatname)) flushkb get $c $c=ucase($c) if $c="Q" goto bye endif if $c="R" $random=1 $gx=rnd(9) $gy=rnd(9) goto calc else $random=0 endif if (asc($c)>64) and (asc($c)<75) at(8+$i,41+len($boatname)) "$c" else goto inputcol endif :inputrow if $bad=0 at(1,4) " " color w+/n $j=0 do at(3+2*$j,2) "$j" $j=$j+1 until $j=10 color w/n else at(9,62) " " color w+/n $z=0 do at(10+$z,61) "$z" $z=$z+1 until $z=10 endif at(8+$i,42+len($boatname)) flushkb get $r if $r="q" goto bye endif if (asc($r)>47) and (asc($r)<58) at(8+$i,42+len($boatname)) "$r" else goto inputrow endif $gx=asc($c)-65 $gy=asc($r)-48 :calc $x=(2*$gx)+($gx+4) $y=(2*$gy)+3 $g=($gy*10)+$gx if $bad=0 color w/n at(1,4) "A B C D E F G H I J" color w/n at(1,4) $j=0 do at(3+2*$j,2) "$j" $j=$j+1 until $j=10 else color w/n at(9,62) "ABCDEFGHIJ" $z=0 do at(10+$z,61) "$z" $z=$z+1 until $z=10 endif return :checkgrid $gn=$grid[$g] if $gn=9 else at(8+$i,41+len($boatname)) " " $nogo=1 goto out endif $b=$boatlen[$i] $by1=9-$b+1 $by2=0+$b-1 $ra="M" $da="P" $la="K" $ua="H" if $gx>($by1) $ra="" endif if $gx<($by2) $la="" endif if $gy>($by1) $da="" endif if $gy<($by2) $ua="" endif $j=1 $c=" " $rc="9" $dc="9" $lc="9" $uc="9" do if $ra<>"" $rc=$grid[$g+$j] endif if $da<>"" $dc=$grid[$g+($j*10)] endif if $la<>"" $lc=$grid[$g-$j] endif if $ua<>"" $uc=$grid[$g-($j*10)] endif if $rc<>9 $ra="" endif if $dc<>9 $da="" endif if $lc<>9 $la="" endif if $uc<>9 $ua="" endif $j=$j+1 until $j=$boatlen[$i] $avail=$ra+$da+$la+$ua if len($avail)=0 $nogo=1 color r+/n at(14,37) "Ship will not fit here" color w/n goto out else at(14,37) " " endif color w/n at(8+$i,44+len($boatname)) if $random=0 if $ra<>"" chr(16) " " endif if $da<>"" chr(31) " " endif if $la<>"" chr(17) " " endif if $ua<>"" chr(30) " " endif endif :getway if $random=0 get $way else $rndch=rnd(3) if $rndch=0 $way="M" endif if $rndch=1 $way="P" endif if $rndch=2 $way="K" endif if $rndch=3 $way="H" endif endif if $way="q" goto bye endif if instr($avail,$way) else goto getway endif if ($way="M") or ($way="K") $t=(($boatlen[$i]-1)*3)+2 $k=0 endif if ($way="P") or ($way="H") $t=($boatlen[$i]*2)-1 $k=0 endif select case $i=0 color b/n case $i=1 color g/n case $i=2 color c/n case $i=3 color m/n case $i=4 color y/n endselect do if $way="M" at($y,$x+$k) chr(219) endif if $way="P" at($y+$k,$x) chr(219) chr(219) endif if $way="K" at($y,$x-($k-1)) chr(219) endif if $way="H" at($y-$k,$x) chr(219) chr(219) endif $k=$k+1 until $k=$t color w/n $j=0 do $grid[$g]=$i if $way="M" $g=$g+1 endif if $way="P" $g=$g+10 endif if $way="K" $g=$g-1 endif if $way="H" $g=$g-10 endif $j=$j+1 until $j=$boatlen[$i] :out return :debug at(13,41) color w/n $y=0 $d=" " do $x=0 do at(13+$y,41+$x) $g=($y*10)+$x if $grid[$g]=9 $grid[$g] else "." endif $x=$x+1 until $x=10 $y=$y+1 until $y=10 return :status $i=0 $lose=1 do at(8+$i,51) if $boathit[$i]=0 at(8+$i,51) color g+/n "100%" $lose=0 endif if ($boathit[$i]>0) and ($boathit[$i]<$boatlen[$i]) $p=100-(($boathit[$i]*100)/$boatlen[$i]) color y+/n "$p% " $lose=0 endif if $boathit[$i]=$boatlen[$i] color r+/n "Lost" endif $i=$i+1 until $i=5 color w/n return :checkhit $gn=$grid[$g] $last="o" if $gn<>9 if $gn<>8 $boathit[$gn]=$boathit[$gn]+1 $last="X" endif $grid[$g]=8 color r+/n else color w/n endif at($y,$x) chr(178) chr(178) color w/n return :badguy color r+/n at(7,61) "$badguy" color w/n box(8,60,20,72,single) at(9,62) "ABCDEFGHIJ" $y=0 do at(10+$y,61) "$y" $x=0 do at(10+$y,62+$x)"." $x=$x+1 until $x=10 $y=$y+1 until $y=10 return :blowmeup $gx=rnd(9) $gy=rnd(9) $x=(2*$gx)+($gx+4) $y=(2*$gy)+3 $g=(10*$gy)+$gx gosub checkhit return :showbad if $mark="X" color r+/n else color w+/n endif at(10+$gy,62+$gx)"$mark" color w/n return :sendattack $=open(1,"$path\$name.txt",5) $out=$last+chr(13)+chr(10) $=writeline(1,$out) $out=chr($gx+65)+","+chr($gy+48) $=writeline(1,$out) $=close(1) return :getattack $r=exist("$path\$badguy.txt") if $r=0 sleep 1 goto getattack endif sleep 1 $=open(1,"$path\$badguy.txt") $in1=readline(1) if $in1="lose" color g+/n at(17,37) "You Won!" goto bye endif $in2=readline(1) $=close(1) del "$path\$badguy.txt" return :gameON del "$path\$name.txt" $r=open(1,"$path\game.txt") if $r=2 $create=1 $=open(1,"$path\game.txt",5) $=writeline(1,$name) $=close(1) :getreply $r=open(1,"$path\reply.txt") if $r=2 sleep 1 goto getreply endif $badguy=readline(1) $=close(1) del "$path\reply.txt" else $create=0 $badguy=readline(1) $=close(1) del "$path\game.txt" $=open(1,"$path\reply.txt",5) $=writeline(1,$name) $=close(1) endif return :bye $last="lose" gosub sendattack del "$path\$badguy.txt" at(22,0) color w+/n "Bye!" ? quit :MAIN gosub intro gosub drawgrid $i=0 $r=" " $c=" " $g=0 do :getagain $bad=0 gosub getXY gosub checkgrid if $nogo=1 goto getagain endif at(8+$i,41+len($boatname)) " " $i=$i+1 until $i=5 $random=0 color w+/n at(15,37) "Looking for player" gosub gameON at(7,37) "Ship Status " gosub badguy :shoot gosub status if $lose=1 $last="lose" gosub sendattack color r+/n at(17,37) "You lost!" goto bye endif if $create=0 goto waitnow endif color w+/n at(15,37) "Enter attack: " $i=7 $bad=1 $random=0 gosub inputcol $mark="?" gosub showbad color w/n at(15,37) "Processing... " gosub sendattack :waitnow $create=1 gosub getattack $mark=$in1 gosub showbad $gxc=substr($in2,1,1) $gyc=substr($in2,3,1) $gx=asc($gxc)-65 $gy=asc($gyc)-48 $x=(2*$gx)+($gx+4) $y=(2*$gy)+3 $g=(10*$gy)+$gx gosub checkhit goto shoot
Compressed/encrypted script still working without decryption !Logfile for transform of Battle ships script: T R A N S F O R M L O G Inputfile : Battle Outputfile : Battle.kix OPTIONS USED Indent : NONE Remarks removed Empty lines removed Battle.kix successfully created, no errors found.
[This message has been edited by kholm (edited 29 June 2000).]
|
|
Top
|
|
|
|
#50370 - 2000-07-04 04:44 AM
Re: Compiler / formatter for Kix-scripts
|
MCA
KiX Supporter
   
Registered: 2000-04-28
Posts: 5152
Loc: Netherlands, EU
|
We did also some benchmarks on your script (372 lines; 9182 bytes)[list]
transform script by your kixtart script benchmark: 78,49 secformatting/checking/stripping/label handling of script. remarks: no limitations of linelength. experience with lines greater then 256 KBytes are possible. a lot of editors can't handle files with those lines. a lot of program language has a default limit of string length of 32 or 64 KBytes. benchmark: 2.58 sec (9 lines; 6965 bytes)code:
Break On $CRLF = Chr(13) + Chr(10) $True = -1 $False = 0 $StrSep1 = "'" $StrSep2 = '"' $LogFile = %TEMP% + "\Transform.log" Color W+/b $IndentNbr = 0 $LineNum = 0 $ErrorsFound = $False $Err = SetConsole("Maximize") Do CLS Box (1,1,3,78,"SINGLE") AT (2,21) "T R A N S F O R M S C R I P T" AT (5,5) "Script to transform : " GetS $File $Err = Open(1,"$File") Until $Err = 0 $OutFile = $File + ".kix" $Err = SetFileAttr($OutFile, 128) If $Err = 0 AT (7,5) "Overwrite " + $OutFile + " Y/N " Do Get $x If UCase($x) = "N" Quit EndIf Until Ucase($x) = "Y" "Y" EndIf $Indent = "" AT (9,5) "Indent (T = Tabulator, 0..9 = number of spaces) : " Do Get $IndentIn $IndentIn = UCase($IndentIn) If $IndentIn = "T" $Indent = Chr(9) Else $Test = Val($IndentIn) If $Test > 0 $i = 0 While $i < $Test $Indent = $Indent + " " $i = $i + 1 Loop EndIf EndIf Until $Indent <> "" Or $IndentIn = 0 $IndentIn AT (11,5) "Keep remarks Y/N " Do Get $x $x = UCase($x) Until ($x = "Y") Or ($x = "N") $x If $x = "Y" $KeepRemarks = $True Else $KeepRemarks = $False EndIf AT (13,5) "Keep empty lines Y/N " Do Get $x $x = UCase($x) Until ($x = "Y") Or ($x = "N") $x If $x = "Y" $KeepEmptyLines = $True Else $KeepEmptyLines = $False EndIf AT (17,5) "Transforming ..........." Del "$OutFile" $Err = Open(2,"$OutFile",5) Del "$LogFile" $Err = Open(3,"$LogFile",5) $Err = WriteLine(3," T R A N S F O R M L O G" + $CRLF + $CRLF) $Err = WriteLine(3,"Inputfile : " + $File + $CRLF) $Err = WriteLine(3,"Outputfile : " + $OutFile + $CRLF + $CRLF) $Err = WriteLine(3,"OPTIONS USED" + $CRLF) $Err = WriteLine(3," Indent : ") $IndentIn = "" + $IndentIn Select Case $IndentIn = "T" $Err = WriteLine(3,"Tabulator" + $CRLF) Case $IndentIn = "0" $Err = WriteLine(3,"NONE" + $CRLF) Case 1 $Err = WriteLine(3,$IndentIn + " spaces" + $CRLF) EndSelect If $KeepRemarks $Err = WriteLine(3," Remarks kept" + $CRLF) Else $Err = WriteLine(3," Remarks removed" + $CRLF) EndIf If $KeepEmptyLines $Err = WriteLine(3," Empty lines kept" + $CRLF + $CRLF) Else $Err = WriteLine(3," Empty lines removed" + $CRLF + $CRLF) EndIf $Line = ReadLine(1) While @Error = 0 GoSub Status $LineNum = $LineNum + 1 GoSub WriteOutLine $Line = ReadLine(1) Loop At(17,30) " " If $IndentNbr > 0 $ErrorsFound = $True $Err = WriteLine(3,$CRLF) $Err = WriteLine(3,"Error, indents not matching, EndIf, Until, Loop or EndSelect statement missing" + $CRLF) EndIf If $ErrorsFound $Err = WriteLine(3,$CRLF) $Err = WriteLine(3,"ERRORS FOUND in file : " + $File + $CRLF + $CRLF) Else $Err = WriteLine(3,"S U C C E S S" + $CRLF) EndIf $Err = WriteLine(3,$OutFile + " created") $Err = Close(1) $Err = Close(2) $Err = Close(3) At(21,5) "Close Notepad to complete Transform" Shell "%COMSPEC% /C Start /Wait /Max NotePad.exe $LogFile" $Ans = MessageBox("Delete logfile : " + $LogFile,"Delete logfile",36) If $Ans = 6 Del "$LogFile" EndIf Return :WriteOutLine While (SubStr($Line,1,1) = " ") Or (SubStr($Line,1,1) = Chr(9)) $Line = SubStr($Line, 2, Len($Line) - 1) Loop While (SubStr($Line,Len($Line),1) = " ") Or (SubStr($Line,Len($Line),1) = Chr(9)) $Line = SubStr($Line, 1, Len($Line) - 1) Loop $TmpLine = $Line $PosRem = 0 GoSub GetPosRem If $PosRem = 0 $TmpLine = $Line GoSub TestStrings EndIf $FrontRem = "" If $PosRem > 0 If $PosRem > 1 $FrontRem = $Indent EndIf $Remark = SubStr($Line, $PosRem , Len($Line) - $PosRem + 1) $Code = SubStr($Line, 1, $PosRem - 1) Else $Remark = "" $Code = $Line EndIf While (SubStr($Code,Len($Code),1) = " ") Or (SubStr($Code,Len($Code),1) = Chr(9)) $Code = SubStr($Code, 1, Len($Code) - 1) Loop If $Code = "" And $Remark = "" $LineEmpty = $True Else $LineEmpty = $False EndIf $PendingIndent = 0 $NotChecked = $False $Test = UCase($Code) Select Case $Test = "DO" $PendingIndent = 1 Case $Test = "ELSE" $PendingIndent = 1 $IndentNbr = $IndentNbr - 1 Case $Test = "ENDIF" $IndentNbr = $IndentNbr - 1 Case $Test = "SELECT" $PendingIndent = 1 $CasePrev = $False Case $Test = "ENDSELECT" $IndentNbr = $IndentNbr - 2 Case $Test = "LOOP" $IndentNbr = $IndentNbr - 1 Case 1 $NotChecked = $True EndSelect If $NotChecked If UCase(SubStr($Code, 1, 3)) = "IF " If UCase(SubStr($Code, Len($Code) - 5, 6)) <> " ENDIF" $PendingIndent = 1 EndIf Else If UCase(SubStr($Code, 1, 5)) = "CASE " $PendingIndent = 1 If $CasePrev $IndentNbr = $IndentNbr - 1 Else $CasePrev = $True EndIf Else If UCase(SubStr($Code, 1, 6)) = "UNTIL " $IndentNbr = $IndentNbr - 1 Else If UCase(SubStr($Code, 1, 6)) = "WHILE " $PendingIndent = 1 EndIf EndIf EndIf EndIf EndIf If $IndentNbr < 0 $ErrorsFound = $True $Err = WriteLine(3,"Error, negative indent in line " + $LineNum + " If, Do, Select or While statement missing previous in script" + $CRLF) $IndentNbr = 0 EndIf If $Code <> "" $i = 0 $Front = "" While $i < $IndentNbr $Front = $Front + $Indent $i = $i + 1 Loop $Line = $Front + $Code Else $Line = "" EndIf If ($Remark <> "") And $KeepRemarks If $Line <> "" $Line = $Line + $FrontRem EndIf $Line = $Line + $Remark EndIf If $Line <> "" $Line = $Line + $CRLF Else If $KeepEmptyLines And $LineEmpty $Line = $CRLF EndIf EndIf $Err = WriteLine(2, "$Line") $IndentNbr = $IndentNbr + $PendingIndent Return :GetPosRem $TestRem = InStr($TmpLine, ";") If $TestRem > 0 $TstStr1 = InStr($TmpLine, $StrSep1) If $TstStr1 = 0 $TstStr1 = 100000 EndIf $TstStr2 = InStr($TmpLine, $StrSep2) If $TstStr2 = 0 $TstStr2 = 100000 EndIf If $TstStr1 < $TstStr2 $StrSep = $StrSep1 $StartStr = $TstStr1 Else $StrSep = $StrSep2 $StartStr = $TstStr2 EndIf If $StartStr = 100000 $StartStr = 0 EndIf If $StartStr < $TestRem And $StartStr > 0 $PosRem = $PosRem + $StartStr $TmpLine = SubStr($TmpLine, $StartStr + 1, Len($TmpLine) - $StartStr) $TestRem = InStr($TmpLine, ";") $TestEnd = InStr($TmpLine, $StrSep) If $TestEnd > 0 If $TestEnd > $TestRem $PosRem = $PosRem + $TestEnd $TmpLine = SubStr($TmpLine, $TestEnd + 1, Len($TmpLine) - $TestEnd) GoSub GetPosRem Else $PosRem = $PosRem + $TestRem EndIf Else $ErrorsFound = $True $Err = WriteLine(3,"Mismatching stringdelimitors in line " + $LineNum + $CRLF) $PosRem = 0 $TmpLine = "" EndIf Else $PosRem = $PosRem + InStr($TmpLine, ";") Endif Else $PosRem = 0 EndIf Return :TestStrings $TstStr1 = InStr($TmpLine, $StrSep1) If $TstStr1 = 0 $TstStr1 = 100000 EndIf $TstStr2 = InStr($TmpLine, $StrSep2) If $TstStr2 = 0 $TstStr2 = 100000 EndIf If $TstStr1 < $TstStr2 $StrSep = $StrSep1 $StartStr = $TstStr1 Else $StrSep = $StrSep2 $StartStr = $TstStr2 EndIf If $StartStr = 100000 $StartStr = 0 EndIf If $StartStr > 0 $TmpLine = SubStr($TmpLine, $StartStr + 1, Len($TmpLine) - $StartStr) $TestEnd = InStr($TmpLine, $StrSep) If $TestEnd > 0 $TmpLine = SubStr($TmpLine, $TestEnd + 1, Len($TmpLine) - $TestEnd) GoSub TestStrings Else $ErrorsFound = $True $Err = WriteLine(3,"Mismatching stringdelimitors in line " + $LineNum + $CRLF) $TmpLine = "" EndIf EndIf Return :Status $s = $s + 1 Select Case $s = 1 $Ch = "|" Case $s = 2 $Ch = "/" Case $s = 3 $Ch = "-" Case 1 $Ch = "\" $s = 0 EndSelect At(17,30) $Ch Return
formatting/checking/stripping/label handling of script + compression + uuencode remark: an additional information header has been added for recognition. benchmark: 3.05 sec (10621 bytes)code:
begin (c) CODEC 1.30e (2000186 tue 04-jul-2000 04:14:59.66) ; ; (c) The software product is protected by copyright laws and ; international copyright treaties, as well as other in- ; tellectual property laws and treaties. ; The SOFTWARE PRODUCT is licensed, not sold. ; ; If you want to use the software for any (new) purpose ; you needs a license agreement, which can only be deli- ; vered by creator and owner of this software. ; begin.. size=6965 M0G)E86L@3VX@)$-23$8@/2!#:'(H,3,I("L@0VAR*#$P*2`D5')U92`]("TQ M("1&86QS92`](#`@)%-T<E-E<#$@/2`B)R(@)%-T<E-E<#(@/2`G(B<@)$QO M9T9I;&4@/2`E5$5-4"4@*R`B7%1R86YS9F]R;2YL;V<B($-O;&]R(%<K+V(@ M)$EN9&5N=$YB<B`](#`@)$QI;F5.=6T@/2`P("1%<G)O<G-&;W5N9"`]("1& M86QS92`D17)R(#T@4V5T0V]N<V]L92@B36%X:6UI>F4B*2!$;R!#3%,@0F]X M("@Q+#$L,RPW."PB4TE.1TQ%(BD@050@*#(L,C$I(")4(%(@02!.(%,@1B!/ M(%(@32`@(%,@0R!2($D@4"!4(B!!5"`H-2PU*2`B4V-R:7!T('1O('1R86YS M9F]R;2`Z("(@1V5T4R`D1FEL92`D17)R(#T@3W!E;B@Q+"(D1FEL92(I(%5N M=&EL("1%<G(@/2`P("1/=71&:6QE(#T@)$9I;&4@*R`B+FMI>"(@)$5R<B`] M(%-E=$9I;&5!='1R*"1/=71&:6QE+"`Q,C@I($EF("1%<G(@/2`P($%4("@W M+#4I(")/=F5R=W)I=&4@(B`K("1/=71&:6QE("L@(B!9+TX@(B!$;R!'970@ M)'@@268@54-A<V4H)'@I(#T@(DXB(%%U:70@16YD268@56YT:6P@56-A<V4H M)'@I(#T@(EDB(")9(B!%;F1)9B`D26YD96YT(#T@(B(@050@*#DL-2D@(DEN M9&5N="`H5"`](%1A8G5L871O<BP@,"XN.2`](&YU;6)E<B!O9B!S<&%C97,I M(#H@(B!$;R!'970@)$EN9&5N=$EN("1);F1E;G1);B`](%5#87-E*"1);F1E M;G1);BD@268@)$EN9&5N=$EN(#T@(E0B("1);F1E;G0@/2!#:'(H.2D@16QS M92`D5&5S="`](%9A;"@D26YD96YT26XI($EF("1497-T(#X@,"`D:2`](#`@ M5VAI;&4@)&D@/"`D5&5S="`D26YD96YT(#T@)$EN9&5N="`K("(@(B`D:2`] M("1I("L@,2!,;V]P($5N9$EF($5N9$EF(%5N=&EL("1);F1E;G0@/#X@(B(@ M3W(@)$EN9&5N=$EN(#T@,"`D26YD96YT26X@050@*#$Q+#4I(")+965P(')E M;6%R:W,@62].("(@1&\@1V5T("1X("1X(#T@54-A<V4H)'@I(%5N=&EL("@D M>"`](")9(BD@3W(@*"1X(#T@(DXB*2`D>"!)9B`D>"`](")9(B`D2V5E<%)E M;6%R:W,@/2`D5')U92!%;'-E("1+965P4F5M87)K<R`]("1&86QS92!%;F1) M9B!!5"`H,3,L-2D@(DME97`@96UP='D@;&EN97,@62].("`B($1O($=E="`D M>"`D>"`](%5#87-E*"1X*2!5;G1I;"`H)'@@/2`B62(I($]R("@D>"`]("). M(BD@)'@@268@)'@@/2`B62(@)$ME97!%;7!T>4QI;F5S(#T@)%1R=64@16QS M92`D2V5E<$5M<'1Y3&EN97,@/2`D1F%L<V4@16YD268@050@*#$W+#4I(")4 M<F%N<V9O<FUI;F<@+BXN+BXN+BXN+BXB($1E;"`B)$]U=$9I;&4B("1%<G(@ M/2!/<&5N*#(L(B1/=71&:6QE(BPU*2!$96P@(B1,;V=&:6QE(B`D17)R(#T@ M3W!E;B@S+"(D3&]G1FEL92(L-2D@)$5R<B`](%=R:71E3&EN92@S+"(@("`@ M(%0@4B!!($X@4R!&($\@4B!-("`@3"!/($<B("`K("1#4DQ&("L@)$-23$8I M("1%<G(@/2!7<FET94QI;F4H,RPB26YP=71F:6QE("`Z("(@("L@)$9I;&4@ M*R`D0U),1BD@)$5R<B`](%=R:71E3&EN92@S+")/=71P=71F:6QE(#H@(B`@ M*R`D3W5T1FEL92`K("1#4DQ&("L@)$-23$8I("1%<G(@/2!7<FET94QI;F4H M,RPB3U!424].4R!54T5$(B`K("1#4DQ&*2`D17)R(#T@5W)I=&5,:6YE*#,L M(B`@26YD96YT(#H@(BD@)$EN9&5N=$EN(#T@(B(@*R`D26YD96YT26X@4V5L M96-T($-A<V4@)$EN9&5N=$EN(#T@(E0B("1%<G(@/2!7<FET94QI;F4H,RPB M5&%B=6QA=&]R(B`K("1#4DQ&*2!#87-E("1);F1E;G1);B`]("(P(B`D17)R M(#T@5W)I=&5,:6YE*#,L(DY/3D4B("L@)$-23$8I($-A<V4@,2`D17)R(#T@ M5W)I=&5,:6YE*#,L)$EN9&5N=$EN("L@(B!S<&%C97,B("L@)$-23$8I($5N M9%-E;&5C="!)9B`D2V5E<%)E;6%R:W,@)$5R<B`](%=R:71E3&EN92@S+"(@ M(%)E;6%R:W,@:V5P="(@*R`D0U),1BD@16QS92`D17)R(#T@5W)I=&5,:6YE M*#,L(B`@4F5M87)K<R!R96UO=F5D(B`K("1#4DQ&*2!%;F1)9B!)9B`D2V5E M<$5M<'1Y3&EN97,@)$5R<B`](%=R:71E3&EN92@S+"(@($5M<'1Y(&QI;F5S M(&ME<'0B("L@)$-23$8@*R`D0U),1BD@16QS92`D17)R(#T@5W)I=&5,:6YE M*#,L(B`@16UP='D@;&EN97,@<F5M;W9E9"(@*R`D0U),1B`K("1#4DQ&*2!% M;F1)9B`D3&EN92`](%)E861,:6YE*#$I(%=H:6QE($!%<G)O<B`](#`@1V]3 M=6(@4W1A='5S("1,:6YE3G5M(#T@)$QI;F5.=6T@*R`Q($=O4W5B(%=R:71E M3W5T3&EN92`D3&EN92`](%)E861,:6YE*#$I($QO;W`@070H,3<L,S`I("(@ M(B!)9B`D26YD96YT3F)R(#X@,"`D17)R;W)S1F]U;F0@/2`D5')U92`D17)R M(#T@5W)I=&5,:6YE*#,L)$-23$8I("1%<G(@/2!7<FET94QI;F4H,RPB17)R M;W(L(&EN9&5N=',@;F]T(&UA=&-H:6YG+"!%;F1)9BP@56YT:6PL($QO;W`@ M;W(@16YD4V5L96-T('-T871E;65N="!M:7-S:6YG(B`K("1#4DQ&*2!%;F1) M9B!)9B`D17)R;W)S1F]U;F0@)$5R<B`](%=R:71E3&EN92@S+"1#4DQ&*2`D M17)R(#T@5W)I=&5,:6YE*#,L(D524D]24R!&3U5.1"!I;B!F:6QE(#H@(B`K M("1&:6QE("L@)$-23$8@*R`D0U),1BD@16QS92`D17)R(#T@5W)I=&5,:6YE M*#,L(E,@52!#($,@12!3(%,B("L@)$-23$8I($5N9$EF("1%<G(@/2!7<FET M94QI;F4H,RPD3W5T1FEL92`K("(@8W)E871E9"(I("1%<G(@/2!#;&]S92@Q M*2`D17)R(#T@0VQO<V4H,BD@)$5R<B`]($-L;W-E*#,I($%T*#(Q+#4I(")# M;&]S92!.;W1E<&%D('1O(&-O;7!L971E(%1R86YS9F]R;2(@4VAE;&P@(B5# M3TU34$5#)2`O0R!3=&%R="`O5V%I="`O36%X($YO=&50860N97AE("1,;V=& M:6QE(B`D06YS(#T@365S<V%G94)O>"@B1&5L971E(&QO9V9I;&4@.B`B("L@ M)$QO9T9I;&4L(D1E;&5T92!L;V=F:6QE(BPS-BD@268@)$%N<R`](#8@1&5L M("(D3&]G1FEL92(@16YD268@4F5T=7)N(`T*("`Z5W)I=&5/=71,:6YE#0I7 M:&EL92`H4W5B4W1R*"1,:6YE+#$L,2D@/2`B("(I($]R("A3=6)3='(H)$QI M;F4L,2PQ*2`]($-H<B@Y*2D@)$QI;F4@/2!3=6)3='(H)$QI;F4L(#(L($QE M;B@D3&EN92D@+2`Q*2!,;V]P(%=H:6QE("A3=6)3='(H)$QI;F4L3&5N*"1, M:6YE*2PQ*2`]("(@(BD@3W(@*%-U8E-T<B@D3&EN92Q,96XH)$QI;F4I+#$I M(#T@0VAR*#DI*2`D3&EN92`](%-U8E-T<B@D3&EN92P@,2P@3&5N*"1,:6YE M*2`M(#$I($QO;W`@)%1M<$QI;F4@/2`D3&EN92`D4&]S4F5M(#T@,"!';U-U M8B!'9710;W-296T@268@)%!O<U)E;2`](#`@)%1M<$QI;F4@/2`D3&EN92!' M;U-U8B!497-T4W1R:6YG<R!%;F1)9B`D1G)O;G1296T@/2`B(B!)9B`D4&]S M4F5M(#X@,"!)9B`D4&]S4F5M(#X@,2`D1G)O;G1296T@/2`D26YD96YT($5N M9$EF("1296UA<FL@/2!3=6)3='(H)$QI;F4L("10;W-296T@+"!,96XH)$QI M;F4I("T@)%!O<U)E;2`K(#$I("1#;V1E(#T@4W5B4W1R*"1,:6YE+"`Q+"`D M4&]S4F5M("T@,2D@16QS92`D4F5M87)K(#T@(B(@)$-O9&4@/2`D3&EN92!% M;F1)9B!7:&EL92`H4W5B4W1R*"1#;V1E+$QE;B@D0V]D92DL,2D@/2`B("(I M($]R("A3=6)3='(H)$-O9&4L3&5N*"1#;V1E*2PQ*2`]($-H<B@Y*2D@)$-O M9&4@/2!3=6)3='(H)$-O9&4L(#$L($QE;B@D0V]D92D@+2`Q*2!,;V]P($EF M("1#;V1E(#T@(B(@06YD("1296UA<FL@/2`B(B`D3&EN945M<'1Y(#T@)%1R M=64@16QS92`D3&EN945M<'1Y(#T@)$9A;'-E($5N9$EF("1096YD:6YG26YD M96YT(#T@,"`D3F]T0VAE8VME9"`]("1&86QS92`D5&5S="`](%5#87-E*"1# M;V1E*2!396QE8W0@0V%S92`D5&5S="`](")$3R(@)%!E;F1I;F=);F1E;G0@ M/2`Q($-A<V4@)%1E<W0@/2`B14Q312(@)%!E;F1I;F=);F1E;G0@/2`Q("1) M;F1E;G1.8G(@/2`D26YD96YT3F)R("T@,2!#87-E("1497-T(#T@(D5.1$E& M(B`D26YD96YT3F)R(#T@)$EN9&5N=$YB<B`M(#$@0V%S92`D5&5S="`](")3 M14Q%0U0B("1096YD:6YG26YD96YT(#T@,2`D0V%S95!R978@/2`D1F%L<V4@ M0V%S92`D5&5S="`](")%3D1314Q%0U0B("1);F1E;G1.8G(@/2`D26YD96YT M3F)R("T@,B!#87-E("1497-T(#T@(DQ/3U`B("1);F1E;G1.8G(@/2`D26YD M96YT3F)R("T@,2!#87-E(#$@)$YO=$-H96-K960@/2`D5')U92!%;F1396QE M8W0@268@)$YO=$-H96-K960@268@54-A<V4H4W5B4W1R*"1#;V1E+"`Q+"`S M*2D@/2`B248@(B!)9B!50V%S92A3=6)3='(H)$-O9&4L($QE;B@D0V]D92D@ M+2`U+"`V*2D@/#X@(B!%3D1)1B(@)%!E;F1I;F=);F1E;G0@/2`Q($5N9$EF M($5L<V4@268@54-A<V4H4W5B4W1R*"1#;V1E+"`Q+"`U*2D@/2`B0T%312`B M("1096YD:6YG26YD96YT(#T@,2!)9B`D0V%S95!R978@)$EN9&5N=$YB<B`] M("1);F1E;G1.8G(@+2`Q($5L<V4@)$-A<V50<F5V(#T@)%1R=64@16YD268@ M16QS92!)9B!50V%S92A3=6)3='(H)$-O9&4L(#$L(#8I*2`](")53E1)3"`B M("1);F1E;G1.8G(@/2`D26YD96YT3F)R("T@,2!%;'-E($EF(%5#87-E*%-U M8E-T<B@D0V]D92P@,2P@-BDI(#T@(E=(24Q%("(@)%!E;F1I;F=);F1E;G0@ M/2`Q($5N9$EF($5N9$EF($5N9$EF($5N9$EF($5N9$EF($EF("1);F1E;G1. M8G(@/"`P("1%<G)O<G-&;W5N9"`]("14<G5E("1%<G(@/2!7<FET94QI;F4H M,RPB17)R;W(L(&YE9V%T:79E(&EN9&5N="!I;B!L:6YE("(@*R`D3&EN94YU M;2`K("(@268L($1O+"!396QE8W0@;W(@5VAI;&4@<W1A=&5M96YT(&UI<W-I M;F<@<')E=FEO=7,@:6X@<V-R:7!T(B`K("1#4DQ&*2`D26YD96YT3F)R(#T@ M,"!%;F1)9B!)9B`D0V]D92`\/B`B(B`D:2`](#`@)$9R;VYT(#T@(B(@5VAI M;&4@)&D@/"`D26YD96YT3F)R("1&<F]N="`]("1&<F]N="`K("1);F1E;G0@ M)&D@/2`D:2`K(#$@3&]O<"`D3&EN92`]("1&<F]N="`K("1#;V1E($5L<V4@ M)$QI;F4@/2`B(B!%;F1)9B!)9B`H)%)E;6%R:R`\/B`B(BD@06YD("1+965P M4F5M87)K<R!)9B`D3&EN92`\/B`B(B`D3&EN92`]("1,:6YE("L@)$9R;VYT M4F5M($5N9$EF("1,:6YE(#T@)$QI;F4@*R`D4F5M87)K($5N9$EF($EF("1, M:6YE(#P^("(B("1,:6YE(#T@)$QI;F4@*R`D0U),1B!%;'-E($EF("1+965P M16UP='E,:6YE<R!!;F0@)$QI;F5%;7!T>2`D3&EN92`]("1#4DQ&($5N9$EF M($5N9$EF("1%<G(@/2!7<FET94QI;F4H,BP@(B1,:6YE(BD@)$EN9&5N=$YB M<B`]("1);F1E;G1.8G(@*R`D4&5N9&EN9TEN9&5N="!2971U<FX@#0H@(#I' M9710;W-296T-"B1497-T4F5M(#T@26Y3='(H)%1M<$QI;F4L("([(BD@268@ M)%1E<W1296T@/B`P("14<W13='(Q(#T@26Y3='(H)%1M<$QI;F4L("13=')3 M97`Q*2!)9B`D5'-T4W1R,2`](#`@)%1S=%-T<C$@/2`Q,#`P,#`@16YD268@ M)%1S=%-T<C(@/2!);E-T<B@D5&UP3&EN92P@)%-T<E-E<#(I($EF("14<W13 M='(R(#T@,"`D5'-T4W1R,B`](#$P,#`P,"!%;F1)9B!)9B`D5'-T4W1R,2`\ M("14<W13='(R("13=')397`@/2`D4W1R4V5P,2`D4W1A<G13='(@/2`D5'-T M4W1R,2!%;'-E("13=')397`@/2`D4W1R4V5P,B`D4W1A<G13='(@/2`D5'-T M4W1R,B!%;F1)9B!)9B`D4W1A<G13='(@/2`Q,#`P,#`@)%-T87)T4W1R(#T@ M,"!%;F1)9B!)9B`D4W1A<G13='(@/"`D5&5S=%)E;2!!;F0@)%-T87)T4W1R M(#X@,"`D4&]S4F5M(#T@)%!O<U)E;2`K("13=&%R=%-T<B`D5&UP3&EN92`] M(%-U8E-T<B@D5&UP3&EN92P@)%-T87)T4W1R("L@,2P@3&5N*"14;7!,:6YE M*2`M("13=&%R=%-T<BD@)%1E<W1296T@/2!);E-T<B@D5&UP3&EN92P@(CLB M*2`D5&5S=$5N9"`]($EN4W1R*"14;7!,:6YE+"`D4W1R4V5P*2!)9B`D5&5S M=$5N9"`^(#`@268@)%1E<W1%;F0@/B`D5&5S=%)E;2`D4&]S4F5M(#T@)%!O M<U)E;2`K("1497-T16YD("14;7!,:6YE(#T@4W5B4W1R*"14;7!,:6YE+"`D M5&5S=$5N9"`K(#$L($QE;B@D5&UP3&EN92D@+2`D5&5S=$5N9"D@1V]3=6(@ M1V5T4&]S4F5M($5L<V4@)%!O<U)E;2`]("10;W-296T@*R`D5&5S=%)E;2!% M;F1)9B!%;'-E("1%<G)O<G-&;W5N9"`]("14<G5E("1%<G(@/2!7<FET94QI M;F4H,RPB36ES;6%T8VAI;F<@<W1R:6YG9&5L:6UI=&]R<R!I;B!L:6YE("(@ M*R`D3&EN94YU;2`K("1#4DQ&*2`D4&]S4F5M(#T@,"`D5&UP3&EN92`]("(B M($5N9$EF($5L<V4@)%!O<U)E;2`]("10;W-296T@*R!);E-T<B@D5&UP3&EN M92P@(CLB*2!%;F1I9B!%;'-E("10;W-296T@/2`P($5N9$EF(%)E='5R;B`- M"B`@.E1E<W13=')I;F=S#0HD5'-T4W1R,2`]($EN4W1R*"14;7!,:6YE+"`D M4W1R4V5P,2D@268@)%1S=%-T<C$@/2`P("14<W13='(Q(#T@,3`P,#`P($5N M9$EF("14<W13='(R(#T@26Y3='(H)%1M<$QI;F4L("13=')397`R*2!)9B`D M5'-T4W1R,B`](#`@)%1S=%-T<C(@/2`Q,#`P,#`@16YD268@268@)%1S=%-T M<C$@/"`D5'-T4W1R,B`D4W1R4V5P(#T@)%-T<E-E<#$@)%-T87)T4W1R(#T@ M)%1S=%-T<C$@16QS92`D4W1R4V5P(#T@)%-T<E-E<#(@)%-T87)T4W1R(#T@ M)%1S=%-T<C(@16YD268@268@)%-T87)T4W1R(#T@,3`P,#`P("13=&%R=%-T M<B`](#`@16YD268@268@)%-T87)T4W1R(#X@,"`D5&UP3&EN92`](%-U8E-T M<B@D5&UP3&EN92P@)%-T87)T4W1R("L@,2P@3&5N*"14;7!,:6YE*2`M("13 M=&%R=%-T<BD@)%1E<W1%;F0@/2!);E-T<B@D5&UP3&EN92P@)%-T<E-E<"D@ M268@)%1E<W1%;F0@/B`P("14;7!,:6YE(#T@4W5B4W1R*"14;7!,:6YE+"`D M5&5S=$5N9"`K(#$L($QE;B@D5&UP3&EN92D@+2`D5&5S=$5N9"D@1V]3=6(@ M5&5S=%-T<FEN9W,@16QS92`D17)R;W)S1F]U;F0@/2`D5')U92`D17)R(#T@ M5W)I=&5,:6YE*#,L(DUI<VUA=&-H:6YG('-T<FEN9V1E;&EM:71O<G,@:6X@ M;&EN92`B("L@)$QI;F5.=6T@*R`D0U),1BD@)%1M<$QI;F4@/2`B(B!%;F1) M9B!%;F1)9B!2971U<FX@#0H@(#I3=&%T=7,-"B1S(#T@)',@*R`Q(%-E;&5C M="!#87-E("1S(#T@,2`D0V@@/2`B?"(@0V%S92`D<R`](#(@)$-H(#T@(B\B M($-A<V4@)',@/2`S("1#:"`]("(M(B!#87-E(#$@)$-H(#T@(EPB("1S(#T@ C,"!%;F1396QE8W0@070H,3<L,S`I("1#:"!2971U<FX@#0H` end: completed. end: crc16=21160 end: check=???? ????
formatting/checking/stripping/label handling of script + compression + encryption remark: an additional information header has been added for recognition. benchmark: 3.09 sec (10321 bytes)code:
begin (c) CODEC 1.30e (2000186 tue 04-jul-2000 04:14:53.00) ; ; (c) The software product is protected by copyright laws and ; international copyright treaties, as well as other in- ; tellectual property laws and treaties. ; The SOFTWARE PRODUCT is licensed, not sold. ; ; If you want to use the software for any (new) purpose ; you needs a license agreement, which can only be deli- ; vered by creator and owner of this software. ; begin. size=6965 䉐특䝷Δˀė°< Ҷߊٛ豣佄ӯ< 䖡Ϯȉѥ̦ߑ< إΌ˒մʄʸܚӉðҐп< 㱃Ѿè檫ћ܉¯ّڐʵų< ͌˝ϓѶ嶸⢩үՆ挻҈< ПЉ抂◘͂쨝ι᭑ֶ˃ᤇӯއ< ʔӶ霁¥脹̷юֽۛշȠ¤< 㮾ȝ틒҉< 成רԾ巌韥ݎݧеͮ쥄< Ā˵˾䌺ٻ܉饭ڡɑ럦< 䁫εȍǠĚʃő༘< òڎڵ礰ήњրᢰɜ< ˩ǃڃ֣ͥӺ݃ѝαՐ⦯ލij< ݫЋͷޭӿҺϰӡ侯љ< ŏꑊ㉱πѠʭߨŋ< ӵæNjՎ륤ܮ¤< ٙ퀌Δχѓ< 萣ըˢ䰀靰ʫἘؚ瞽֠ѩ쥄< ¿𭷝ɳݍıɵ< ېܨ깼̡ȀƑى< 萞ņ̐؍šک螑њ²̼Ú뜈< ؊תڬ۽ԄّƳ< ܍ºѤǧߍ舼覩ĸ퇰ʩ< ՟˧◝ؒ쨓ϹŮӿϠ< ײæ̻ȅǞϭ¤< Ϊɒȇ瓧Ԓѹ< ƼІ̙ζˇʚ֞Ȣ< ˾Ljگڹٞчմ܄ˉצ< ͯ쪬寗ՠέφۂ¿< ѣނؒӹӥܿ߷ҏİŹӐ< ӸہՊèÂэ𫿲ԅ檡ճ< ک°̈́Ҳچܕ듢춸ɝ< Øѳ셊㳇ϯɡɩψǞʠК< ȍ쭍縷ߠߞن掝Ҹى¤< ⶺ䃙ȁ퀌뒥덏< ͟帠䷞ۄ됊ޒ漐ܚėРͽ< ֙﯂܌맺܄˸< ϑ鰋ءڳ̩͘ਜ츶< ܣũر□庿ĎıȞ҂ӆ< ϼГַĤܵߕӀ؆ij< 襶ԏאƧڊ蕨գƩ< εϵ雚§ᆻȀǛ҃< הǧĦܡƟ萎ϋδ쪣¤< ڸ懩ȑۤ܊Ԅӗ< ևϐӅϋ駎׀ؚЇȿ̨< ꏁ˪懈ᑮȞʋն䬕Ҡ< 誅ް٦ōѧȑ轥؛͐ԉ< śێ⣰۽њ鵓ҡ͇놩φ月< Ω½Ӻ볣ˣڡޅճ< ʳرƽƞѶҸҴيЪ̙< Ӊ㉽ռľ҇Ջ< ӥ⍠¦ߵՌ얖ɩ᧾¤< ިꟘٓ͘銓ǟ< 萣Ũ庣ͦˑ٦Оנɼ< Ⱦޣࠪݮڱ喙뱯ѯ< àﶤϳ➤艨őМ< ۿ蛥ϯ̡㗷Ѽ漮윈< μֆڦ剛λĴۻўϑ҇׳< ڱѰ֑˝״ѐȰĎô< ɡήՉֳہ쨕÷˃憹փ< 稶߷Ǟ葎篆җͩLJ¤< ʳ畸ɒ퓯ϧ㏄ȇ؞< Խ܅܄ω̙ȹӐIJԛһȩ쥄< ڢ躯ݮ٘覣մɘض< ʖߡϨ˸֥Ŝڀ< إĎدҵ˒Ѕڿٚ낰ƀҲٟφں< ý۵ӡޤìő⦿嶔Ɇµdz< 襶ЋզףÝ߂₹홛ӯϰə< ٢ΥՍ○֗츇ĈΈϰ< Ǽ˿nj毆ݙ¤< ʶə芮÷ӊ‥< Խ䉐蹩Ȏ坿漓Շ瞩נ< ҚǔԻϝՓճⱠؐύش< 刣⺤̡ٙďّ< ȵĆհŰۿ¡ӆ֩٘ߖͧᜈ< ϼ潠ٵꮮٙƳ< ڥØޭߑÿд؍ы< ʵˇ翧ܒݮ䷒ޛ< 切§ԷĶ뾡앨Վꃤ¤ըħ¤< ڰ쓙։ۙƜч뎏< ЗӁ̉筛ّޓ瞥נӹ< Āϭʴɉѷďɔߝ̬< ۠Ϥֲ勬˚̐븶< ߂़ޮ䞰ʻӁ֪ٛ˗< μ½ֺޤтشݠŃ̒럻чճ< خ۱ˍҶ⦜႙ƬӶ₯< ㉱ߘԷɩوӯ͊Ԁ< ӠNjѭ¤< ڻ͏șٟؒÎ< ƈڢٙ칆ㄿ؟Иĭº< ˭ޮ݉І܄٢< ޖۡѬѧ̒ɨڇ︶< ǀӥǏ߁< ܍竰Ӳʨۿڡԕճ< آ۵ԶلÙΓ綌øȠЕҨ╤< ƫӽˇ۶ҡɱޔσÖ쒯< ьַĦכՎǴƨΧ¤< ډȁˈڃσ矃< ݗ탦͟م欆ՙ䌨᭐ɒ٤őحРր륄< ̄ۘϪߩɜٷ鴨Ճِ뤞ɵ< 밋ޡ촰ֵ̩dž˃踶< Цߖ۬ᇡɠ³Ϝ՚< 籦ػ 겯בρ߃Ƴ< ۈµ쳴ɒԜŨДӯ鮫< İǟϥ˗ೇŲ̔湌ޛ< ĕŧ퍠¦ʼŽńҤʮǩȠҗ¤< ڻཏɺцѓ< 尔̉䎢Ȏؚð< ψɳޭ͆臘ɤˋĨ< ܤԸŶ轥Ɇ؏奉< ėʩݩӉŹ҂ʓί䜈< ׃ͱӱڿ͓ڍճ< کɵƙބҶφ舼гށôф< 굉鋳ռѠǰۑʨ< çIJގĊ£ߙ좧¤< ڰ痠鿉͏ȍ΄ԇѼ< ˛ρ«㡚݀ÛͲѵѮ< ō͊Ș襻ڡŋﴪ۵< ن⳪͝츶< Ġ͇۬Ŵ۹ߧǥɜˆᜈ< ־ߥĖϑɳ< ʫȞҡͥ˅߀̳ѺºДӯ鮫< ђΰ蔧츓赹߇ӿ< ִƽ۲ƞ翇Ŏ費¤< ϯ銌܄æꟓԅ挷ѹ< ɝٕ̙ˢ羌՚ԙҽÀ< ˑޏϢ齺ي獶Ë몞Ǩ< 刣⺤ؚܴ< Ƃɨӵʮ͊곇ҀİȜ떩< ƬˀݳޱλӨܠѝ绀ח̳< Τ˝ϓȷɡՁè徯< 𭾳דռ躤ͯϿ֛ċ< ƉӶƻ۲ѝԗģ¤< ʱ㓀ڟӓ璧< 胱欆̉ÀϢ缛ǰ< Ӛꅼۼ츢ӭԄ< 㮖ءˠƵ܁< ţݐɇکܫĹ뗲ð̉ؿ윈< ʻӀ՚ӱ־»ܴ֩đחȳ< ޡɷߘ·ɠªŕ냢Ҩ֙< П憐˶郯ة᩵͞< ЌDzâ۲ƞ悃櫋¤< ٕ파֑܊< ȕՙ̢ـԙدҽà< ק镖ǮŃӊ۸< 刣⺤ܴ在̔ĉ< Ƃɨӵʮ͊곇ҀİȜ떩< ˒کĨ˰ܑɃ˃ސȳ< ֺѷôƌԲкȠ퇼Đ< űΧ鋳ؖͱߘӯꤋ< ǔħǧߡΠ㷵ę·¤< ߮ଡ଼ұԊ쐩< ɱཁۈϕ缃ጲŢͯ쥄< ꕗྯ⎕˫܄眵շԄ< end: completed. end: crc16=21160 end: check=
Greetings.
|
|
Top
|
|
|
|
#50371 - 2003-10-17 11:49 PM
Re: Compiler / formatter for Kix-scripts
|
MCA
KiX Supporter
   
Registered: 2000-04-28
Posts: 5152
Loc: Netherlands, EU
|
Dear,
For a more recent version see F13-0048 Making use of KiXGUI, easy cut'n paste code.
It is calling now TransGUI.kix greetings.
|
|
Top
|
|
|
|
Moderator: Glenn Barnas, NTDOC, Arend_, Jochen, Radimus, Allen, ShaneEP, Ruud van Velsen, Mart
|
1 registered
(Allen)
and 271 anonymous users online.
|
|
|