?tacl routine
#FRAME
SINK [#LOAD /keep 1/ commacs]
SINK [#LOAD /keep 1/ macros]

[#PUSH file prev memory clib OK model unzip lib accel unlicensed licensed
       options fileset nocrypt crypt
]
#PUSH #DEFAULTS

#SET OK -1

[#IF [#ARGUMENT /VALUE memory/ KEYWORD /WORDLIST LARGE SMALL/ OTHERWISE ]]
[#IF [#ARGUMENT /VALUE model/ KEYWORD /WORDLIST NOWIDE WIDE/ OTHERWISE ]]
[#IF [#ARGUMENT /VALUE unlicensed/ KEYWORD /WORDLIST UNLICENSED/ OTHERWISE ]]
[#IF [#ARGUMENT /VALUE nocrypt/ KEYWORD /WORDLIST NOCRYPT/ OTHERWISE ]]
[#IF [#ARGUMENT /VALUE fileset/ TEMPLATE FILENAME OTHERWISE ]]

[#IF [#EMPTYV memory] |THEN| #SET memory LARGE]
[#IF [#EMPTYV model] |THEN| #SET model NOWIDE]

[#IF model '=' "WIDE"
  |THEN| #SETV clib model
  |ELSE| #SETV clib memory
]

[#IF model '=' "WIDE"
|THEN|
  #SET unzip UNZIPW
|ELSE|
  #SET unzip UNZIPL
]
#SET lib [unzip]B
#SET accel UNZIP
#SET options [options], [model]

[#IF unlicensed '=' "UNLICENSED"
|THEN|
  #SET unzip [unzip]U
  #SET accel [accel]U
  #SET lib   [lib]U
|ELSE|
  #SET licensed LICENSED
  #SET options [options], define [licensed]
]

[#IF nocrypt '=' "NOCRYPT"
|THEN|
|ELSE|
  #SET crypt USE_CRYPT
  #SET options [options], define [crypt]
]

[#IF [#EMPTYV fileset] |THEN| #SET fileset *C]

#OUTPUT Files to compile: [fileset]
#OUTPUT Pointer Model   : [model]
#OUTPUT Memory Model    : [memory]
#OUTPUT C Library       : [clib]
#OUTPUT Axcel Object    : [accel]
#OUTPUT Run Object      : [unzip]
#OUTPUT Library Object  : [lib]
#OUTPUT Compile Options : [options]
#OUTPUT

#SET file [#FILENAMES /MAXIMUM 1/ [fileset]]
[#LOOP |while| NOT [#EMPTYV file]
|DO|
  #SETV prev file
  CC [file] $T.#UNZIP [options]
  [#IF [tacl^completioncode] > 1 |THEN| #set OK 0 ]
  #SET file [#FILENAMES /MAXIMUM 1, PREVIOUS [prev]/ [fileset]]
]

[#IF OK |THEN|
  BBUNZIPLIB
  [#IF [tacl^completioncode] > 0 |THEN| #SET OK 0]
]

#PUSH #PROCESSFILESECURITY
VOLUME ,"NUNU"

[#IF OK |THEN|
  BBUNZIP [unzip] [clib]
  [#IF [tacl^completioncode] > 0 |THEN| #SET OK 0]
]

[#IF OK |THEN|
  secure^file [accel] "UUUU" SUPER.DAVES
  accel^file [unzip] [accel]
  [#IF [tacl^completioncode] > 0 |THEN| #SET OK 0]
]

[#IF OK
  |THEN| #OUTPUT Successfully produced Accelerated Object [accel]
         secure^file [accel] "UUUU" SUPER.DAVES
         [#IF [#INTERACTIVE] |THEN|
           [#IF licensed '=' "LICENSED" |THEN|
             #OUTPUT [accel] will not run without being LICENSED
             [#IF [#FILEINFO /LICENSED/ [accel]]
             |THEN|
               #OUTPUT [accel] already LICENSED
             |ELSE|
               [#IF [#MATCH Y* [#INPUT [accel] License [accel] ?]] |THEN|
                 fup^license [accel]
               ]
             ]
           ]
         ]
  |ELSE| #OUTPUT Failed to produce Accelerated Object [accel]
]

#OUTPUT Finished

#UNFRAME
