' StoneCracker De-Crunch Using Library 
' ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ 
' cODED bY ßudda/NFA 
' StARtEd : 12/08/1995 
' FiNiSHed: 12/08/1995 

' -- Define File Names --
SRC$="temp:to_budda.stc" : Rem you'll have to change these! 
DEST$="ram:shit.txt"

' -- Load Header & Extract Info -- 
Open In 1,SRC$
HEADER$=Input$(1,16)
FILE_LENGTH=Lof(1)
Close 1
STC$=Left$(HEADER$,4)
SECURITY=Leek(Varptr(HEADER$)+4)
REAL_LENGTH=Leek(Varptr(HEADER$)+8)
CRUNCH_LENGTH=Leek(Varptr(HEADER$)+12)

' -- Check File Header --  
If STC$="S403" or STC$="S404"
   Print "File Length          :";FILE_LENGTH
   Print "StoneCracker Version : ";STC$
   Print "Security Length      :";SECURITY
   Print "Original Length      :";REAL_LENGTH
   Print "Crunched Length      :";CRUNCH_LENGTH
   Cdown 
   
   ' -- Attempt To Open Library --
   Trap Lib Open 1,"stc020.library",0
   If Errtrap
      Print "Error Opening Library"
      End 
   End If 
   
   ' -- Load Whole Crunched File Into Memory Bank 10 -- 
   Reserve As Work 10,REAL_LENGTH+SECURITY
   Bload SRC$,Start(10)
   
   ' -- Call Decrunch Routine In Library -- 
   Areg(0)=Start(10)+SECURITY : Rem                     Destination Address  
   Areg(1)=Start(10) : Rem                              Source Address    
   RESULT=Lib Call(1,-36) : Rem                         Call "DeCrunchData"    
   
   ' -- Save Decrunched File --     
   Print "Saving decrunched file "+DEST$
   Bsave DEST$,Start(10)+SECURITY To Start(10)+Length(10)
   
   ' -- Dispose Of Library -- 
   Lib Close 1
   
Else 
   Print "File isn't crunched with Stone Cracker!"
End If 







