home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / lzxconv.lzx / Lx.e < prev    next >
Encoding:
Text File  |  1995-04-14  |  2.3 KB  |  116 lines

  1. /*  Unpack File for Spot. Or other prog who need it
  2.     
  3.     Created By DarkSpirit 1995
  4.  
  5.  
  6.     |\__/,|   (`\  NetMail #1: 2:200/136.17
  7.   _.|o o  |_   ) ) NetMail #2: 2:200/113.22
  8. -(((---(((---------AmigaNet: 39:163/101.1
  9. E-Mail: Cat@p22.dennis.ct.se
  10. E-Mail: Cat@p10.kockens.ct.se
  11.                                   */
  12. MODULE 'dos/dos'
  13. OBJECT suf
  14.     type[30]:ARRAY OF CHAR
  15. ENDOBJECT
  16. PROC main()
  17.     DEF fh, cmd[10]:ARRAY OF suf,buf,x=0,comand[128]:STRING
  18.     CopyMem('UnZip',cmd[1].type,10)
  19.     CopyMem('LHA x',cmd[2].type,10)
  20.     CopyMem('Arc x',cmd[3].type,10)
  21.     CopyMem('LZX x',cmd[4].type,10)
  22.     CopyMem('ARJ x',cmd[5].type,10)
  23.     CopyMem('ZOO -extract',cmd[6].type,15)
  24.     banner()
  25.     chk(arg)
  26.     fh:=Open(arg,MODE_OLDFILE)
  27.     IF fh=0
  28.             WriteF('Error opening file:\s\n',arg)
  29.             RETURN 1
  30.     ENDIF
  31.     buf:=New(10)
  32.     Read(fh,buf,10)
  33.     Close(fh)
  34.     MOVE.L  buf,A0
  35.     CMP.W   #"PK",(A0)
  36.     BNE     notzip
  37.     x:=1
  38. notzip:
  39.     CMP.L   #"-lh5",2(A0)
  40.     BNE     notlha5
  41.     x:=2
  42. notlha5:
  43.     CMP.L   #"-lh0",2(A0)
  44.     BNE     notlha
  45.     x:=2
  46. notlha:
  47.     CMP.W   #$1A08,(A0)
  48.     BNE     notarc
  49.     x:=3
  50. notarc:
  51.     CMP.L   #$4C5A5800,(A0)
  52.     BNE     notlzx
  53.     x:=4
  54. notlzx:
  55.     IF (chkarj(arg))=0 THEN x:=5
  56.  
  57.     MOVE.L  buf,A0
  58.     CMP.L   #$5A4F4F20,(A0)
  59.     BNE     notzoo
  60.     x:=6
  61. notzoo:
  62.     IF x=0
  63.         WriteF('Error: Unknown archive type\n')
  64.         RETURN 1
  65.     ENDIF
  66.  
  67.     StringF(comand,'\s "\s"',cmd[x].type,arg)
  68.     Execute(comand,0,0)
  69.  
  70. ENDPROC 0
  71.  
  72. PROC chk(name)
  73.     MOVE.L  name,A0
  74.     CMP.B   #$22,(A0)
  75.     BEQ     doit
  76.     RETURN 1
  77. doit:
  78.     MOVE.L  A0,A1
  79.     ADDQ.L  #1,A1
  80. fix:
  81.     MOVE.B  (A1)+,(A0)+
  82.     CMP.B   #$22,(A1)
  83.     BNE     fix
  84.     MOVE.B  #0,(A0)
  85.     RETURN 0
  86. ENDPROC
  87. PROC banner()
  88.     MOVEM.L D0-D7/A0-A6,-(A7)
  89.     MOVE.L  dosbase,A6
  90.     JSR     -60(A6)
  91.     MOVE.L  D0,D1
  92.     LEA.L   ban(PC),A0
  93.     MOVE.L  A0,D2
  94.     LEA.L   bas(PC),A1
  95.     SUB.L   A0,A1
  96.     MOVE.L  A1,D3
  97.     JSR     -48(A6)
  98.     MOVEM.L (A7)+,D0-D7/A0-A6
  99. ENDPROC
  100. PROC chkarj(name)
  101.     UpperStr(name)
  102.     MOVE.L  name,A0
  103. fipu:
  104.     CMP.B   #".",(A0)
  105.     BEQ     pufound
  106.     CMP.B   #0,(A0)+
  107.     BNE     fipu
  108. dsa:
  109.     RETURN 1
  110. pufound:
  111.     CMP.L   #".ARJ",(A0)
  112.     BNE     dsa
  113. ENDPROC 0
  114.  
  115. ban:    CHAR $1b,$5b,'41m',$1b,$5b,'32mLx v1.0 By DarkSpirit 1995',$1b,$5b,'0m',$a,$a,0
  116. bas:    CHAR 0,'$VER: Lx v1.0 (25.03.95)'