home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 97 / af097sub.adf / Cataloguer.LZX / Cataloger next >
Text File  |  2014-05-13  |  67KB  |  2,142 lines

  1. /* $VER: Cataloger 1.97 (15.4.96)© Felix C. Coronado
  2. */
  3. OPTIONS RESULTS
  4. NL='0a'x
  5. LUP='1b'x||'M'
  6. PRAGMA('D','ADPro:')
  7. IF OPEN(ReadFile,'ENVARC:Cataloger.config','R') THEN DO
  8.  ADProArgs=READLN(ReadFile)
  9.  DefPrefsFileName=READLN(ReadFile)
  10.  OutWinX=READLN(ReadFile)
  11.  OutWinY=READLN(ReadFile)
  12.  ShowErrors=READLN(ReadFile)
  13.  ListMode=READLN(ReadFile)
  14.  UseDCTV=READLN(ReadFile)
  15.  CALL CLOSE(ReadFile)
  16. END
  17. ELSE DO
  18.  IF EXISTS('MorphPlus') THEN ADProArgs='MAXMEM=3147776 NOSAVEDEFAULTS DEFAULTFILE=ADProDefaults'
  19.  IF EXISTS('ADPro') THEN ADProArgs='MAXMEM=3147776 NOSAVEDEFAULTS DEFAULTFILE=ADPro.prefs'
  20.  DefPrefsFileName=''
  21.  OutWinX=''
  22.  OutWinY=''
  23.  ShowErrors=''
  24.  ListMode=''
  25.  UseDCTV=''
  26. END
  27. IF DefPrefsFileName='' THEN DefPrefsFileName='CatPrefs:Cataloger.prefs'
  28. IF DATATYPE(OutWinX)~='NUM' THEN OutWinX=640
  29. IF DATATYPE(OutWinY)~='NUM' THEN OutWinY=85
  30. IF ShowErrors~='Yes' & ShowErrors~='No' THEN ShowErrors='Yes'
  31. IF ListMode~='All' & ListMode~='Both' & ListMode~='Cataloged' & ListMode~='Failed' & ListMode~='None' THEN ListMode='None'
  32. IF UseDCTV~='Yes' & UseDCTV~='No' THEN UseDCTV='Yes'
  33. IF ~SHOW('L',"rexxsupport.library") THEN CALL ADDLIB("rexxsupport.library",0,-30)
  34. SIGNAL ON SYNTAX
  35. SyntaxID='AddRexxSupport'
  36. CALL NULL()
  37. SIGNAL OFF SYNTAX
  38. IF POS('ADPro',SHOW('Ports'))=0 THEN DO
  39.  IF EXISTS('ADPro') THEN ADDRESS COMMAND 'C:Run >NIL: ADPro '||ADProArgs
  40.  ELSE DO
  41.   IF EXISTS('MorphPlus') THEN ADDRESS COMMAND 'C:Run >NIL: MorphPlus '||ADProArgs
  42.   ELSE DO
  43.    SAY "Could not locate ADPro/MorphPlus"
  44.    EXIT
  45.   END
  46.  END
  47. END
  48. CALL TIME('R')
  49. DO WHILE TIME('E')<60 & POS('ADPro',SHOW('Ports'))=0
  50.  CALL Delay(50)
  51. END
  52. IF POS('ADPro',SHOW('Ports'))=0 THEN DO
  53.  SAY "Could not start ADPro/MorphPlus"
  54.  EXIT
  55. END
  56. ADDRESS "ADPro"
  57. VERSION
  58. IF (WORD(adpro_result,1)='ADPro' & LEFT(WORD(adpro_result,2),3)>=2.5) | (WORD(adpro_result,1)='MorphPlus' & LEFT(WORD(adpro_result,2),3)>=1.3) THEN Vrsn='NEW'
  59.                                                                                                                                                ELSE Vrsn='OLD'
  60. IF Vrsn='NEW' THEN DO
  61.  OBTAIN_ADPRO
  62.  SAVE_DEFAULTS 'T:TempADProDefaults'
  63.  if rc=10 then do
  64.   ADPRO_TO_FRONT
  65.   okay1 'Error saving file'||NL||,
  66.         '"T:TempADProDefaults"'
  67.   exit 10
  68.  end
  69. END
  70. IF Vrsn='OLD' THEN DO
  71.  LFORMAT
  72.  OldLoader=adpro_result
  73.  SFORMAT
  74.  OldSaver=adpro_result
  75.  OFORMAT
  76.  OldOperator=adpro_result
  77.  SCREEN_TYPE
  78.  SType=adpro_result
  79. END
  80. RENDER_TYPE
  81. RType=adpro_result
  82. PTOTAL
  83. TotCol=adpro_result
  84. SIGNAL ON BREAK_C
  85. Settings=DefPrefsFileName
  86. FindPrefs='False'
  87. IF OPEN(Prefs,Settings,"R") THEN DO
  88.  CatVersion=READLN(Prefs)
  89.  IF WORD(CatVersion,1)='Cataloger' & WORD(CatVersion,2)<=1.97 THEN DO
  90.   DirMode=READLN(Prefs)
  91.   SkipType=READLN(Prefs)
  92.   PreImgAsp=READLN(Prefs)
  93.   PWI=READLN(Prefs)
  94.   PHE=READLN(Prefs)
  95.   ColMode=READLN(Prefs)
  96.   TWI=READLN(Prefs)
  97.   THI=READLN(Prefs)
  98.   UseTex=READLN(Prefs)
  99.   FName=READLN(Prefs)
  100.   FType=READLN(Prefs)
  101.   FSize=READLN(Prefs)
  102.   SizeTex=READLN(Prefs)
  103.   CatForm=READLN(Prefs)
  104.   CatMode=READLN(Prefs)
  105.   UseOps=READLN(Prefs)
  106.   SavOps=READLN(Prefs)
  107.   BackCol=READLN(Prefs)
  108.   TexCol=READLN(Prefs)
  109.   TexBacCol=READLN(Prefs)
  110.   CatSuff=READLN(Prefs)
  111.   ThumbType=READLN(Prefs)
  112.   TBMPct=READLN(Prefs)
  113.   TileBord=READLN(Prefs)
  114.   ThumBord=READLN(Prefs)
  115.   BordCol=READLN(Prefs)
  116.   TWID=READLN(Prefs)
  117.   THEI=READLN(Prefs)
  118.   TxtYPos=READLN(Prefs)
  119.   TxtXPos=READLN(Prefs)
  120.   ThumbProcess=READLN(Prefs)
  121.   SortList=READLN(Prefs)
  122.   DepthTex=READLN(Prefs)
  123.   BordThick=READLN(Prefs)
  124.   TileBordMode=READLN(Prefs)
  125.   FindPrefs='True'
  126.  END
  127.  CALL CLOSE(Prefs)
  128. END
  129. IF FindPrefs='False' THEN DO
  130.  OKAY1 'Could not load settings file:'||NL||,
  131.        '"'||Settings||'"'||NL||,
  132.        'Using defaults.'
  133.  DirMode='partial'
  134.  SkipType='none'
  135.  SortList='unsorted'
  136.  PreImgAsp='Yes'
  137.  ColMode='Color'
  138.  PWI=640
  139.  PHE=400
  140.  BackCol='0 0 0'
  141.  TWI=3
  142.  THI=2
  143.  TWID=200
  144.  THEI=180
  145.  UseTex='Yes'
  146.  TxtYPos='Bottom'
  147.  TxtXPos='center'
  148.  SizeTex='Yes'
  149.  DepthTex='Yes'
  150.  FName='topaz'
  151.  FType='BITMAPPED'
  152.  FSize=8
  153.  TexCol='0 0 0'
  154.  TBMPct=100
  155.  TexBacCol='255 255 255'
  156.  ThumbType='Small'
  157.  ThumbProcess='No'
  158.  TileBord='Yes'
  159.  TileBordMode='All'
  160.  ThumBord='Yes'
  161.  BordThick=1
  162.  BordCol='255 255 255'
  163.  CatForm='IFF'
  164.  CatMode='Raw'
  165.  UseOps='No'
  166.  SavOps=''
  167.  CatSuff='.iff'
  168. END
  169. CheckBuf='NO'
  170. ImgDir='"'
  171. CatDir=''
  172. SeqDir='ADP_FRED:Sequences'
  173. SeqFile=''
  174. ListDir=''
  175. ListFile=''
  176. DO FOREVER
  177.  BackToStart='Yes'
  178.  DO WHILE BackToStart='Yes'
  179.   BackToStart='No'
  180.   ChoiceNum=0
  181.   DO WHILE ChoiceNum~=1
  182.    zz=LASTPOS('/',Settings)
  183.    IF zz=0 THEN zz=INDEX(Settings,':')
  184.    PrefsDir=LEFT(Settings,zz)
  185.    PrefsFile=RIGHT(Settings,LENGTH(Settings)-zz)
  186.    IF PrefsDir~='/' & RIGHT(PrefsDir,2)~='//' & RIGHT(PrefsDir,1)='/' THEN PrefsDir=LEFT(PrefsDir,LENGTH(PrefsDir)-1)
  187.    CatVersion='Cataloger 1.97'
  188.    IF SortList='' THEN SortList='unsorted'
  189.    IF ColMode='Grayscale' THEN ColMode='Gray'
  190.    IF BackCol='' THEN BackCol='0 0 0'
  191.    IF TWID='' THEN TWID=TRUNC((PWI-TWI-1)/TWI)
  192.    IF THEI='' THEN THEI=TRUNC((PHE-THI-1)/THI)
  193.    IF TRUNC((PWI-TWI-1)/TWI)<5 | TRUNC((PHE-THI-1)/THI)<9 | (ThumbType='Small' & TRUNC((PHE-THI-1)/THI)<11) THEN UseTex='No'
  194.    IF TxtYPos='' THEN TxtYPos='Bottom'
  195.    IF TxtXPos='' THEN TxtXPos='left'
  196.    IF DepthTex='' THEN DepthTex='No'
  197.    IF TexCol='' THEN TexCol='255 255 255'
  198.    IF TBMPct='' THEN TBMPct=50
  199.    IF TexBacCol='' THEN TexBacCol='0 0 0'
  200.    IF UseTex='No' | ThumbType='' THEN ThumbType='Large'
  201.    IF ThumbProcess='' THEN ThumbProcess='No'
  202.    IF TileBord='' THEN TileBord='Yes'
  203.    IF TileBordMode='' THEN TileBordMode='All'
  204.    IF (TWID=1 & THEI=1 & TileBord='Yes') | ThumBord='' THEN ThumBord='No'
  205.    IF BordThick='' THEN BordThick=1
  206.    IF BordCol='' THEN BordCol=TexCol
  207.    IF CatMode='Rendered' THEN CatMode='Image'
  208.    IF ColMode='Color' THEN DO
  209.     Col1=' (R G B): '||BackCol
  210.     Col2=' (R G B): '||TexCol
  211.     Col3=' (R G B): '||TexBacCol
  212.     Col4=' (R G B): '||BordCol
  213.    END
  214.    ELSE DO
  215.     Col1=' (G): '||WORD(BackCol,2)
  216.     Col2=' (G): '||WORD(TexCol,1)
  217.     Col3=' (G): '||WORD(TexBacCol,1)
  218.     Col4=' (G): '||WORD(BordCol,1)
  219.    END
  220.    IF (DirMode='entire' | DirMode='partial') & VRSN='NEW' THEN DirDis='Catalog '||DirMode||' directory, ignoring '||SkipType
  221.    IF (DirMode='entire' | DirMode='partial') & VRSN='OLD' THEN DirDis='Catalog '||DirMode||' directory'
  222.    IF DirMode='List' THEN DirDis='Catalog from '||SortList||' file list'
  223.    IF DirMode='Seq' THEN DirDis='Catalog from '||SortList||' Sequence file'
  224.    IF UseTex='Yes' THEN TextDis='On'
  225.                    ELSE TextDis='Off'
  226.    IF SizeTex='Yes' THEN SizeDis='On'
  227.                     ELSE SizeDis='Off'
  228.    IF DepthTex='Yes' THEN DepthDis='On'
  229.                      ELSE DepthDis='Off'
  230.    IF ThumbProcess='Yes' THEN ThPrDis='On'
  231.                          ELSE ThPrDis='Off'
  232.    IF TileBord='Yes' THEN TileDis='On'
  233.                      ELSE TileDis='Off'
  234.    IF TileBordMode='Images' THEN TileBordDis='Only images'
  235.                             ELSE TileBordDis=TileBordMode
  236.    IF ThumBord='Yes' THEN ThumbDis='On'
  237.                      ELSE ThumbDis='Off'
  238.    IF CatMode='Image' THEN CatDis='Rendered'
  239.                       ELSE CatDis=CatMode
  240.    IF UseOps='Yes' THEN OpsDis='On'
  241.                    ELSE OpsDis='Off'
  242.    IF Vrsn='NEW' THEN DO
  243.     IF TextDis='On' THEN DO
  244.      SetLine09=' Position: '||TxtYPos||' '||TxtXPos||NL
  245.      SetLine10=' Image size: '||SizeDis||NL
  246.      SetLine11=' Image colors: '||DepthDis||NL
  247.      SetLine12=' Font: '||FName||' '||FSize||NL
  248.      SetLine13=' Text color'||Col2||NL
  249.      SetLine14=' Mix highlight: '||TBMPct||'%'||NL
  250.      IF TBMPct>0 THEN SetLine15='  Highlight color'||Col3||NL
  251.                  ELSE SetLine15=''
  252.     END
  253.     ELSE DO
  254.      SetLine09=''
  255.      SetLine10=''
  256.      SetLine11=''
  257.      SetLine12=''
  258.      SetLine13=''
  259.      SetLine14=''
  260.      SetLine15=''
  261.     END
  262.     IF TileDis='On' THEN SetLine19=' Tile border mode: '||TileBordDis||NL
  263.                     ELSE SetLine19=''
  264.     IF TileDis='On' | ThumbDis='On' THEN DO
  265.      SetLine21=' Border thickness: '||BordThick||NL
  266.      SetLine22=' Border color'||Col4||NL
  267.     END
  268.     ELSE DO
  269.      SetLine21=''
  270.      SetLine22=''
  271.     END
  272.     IF OpsDis='On' THEN SetLine26=' Opts: '||SavOps||NL
  273.                    ELSE SetLine26=''
  274.     ADPRO_TO_FRONT
  275.     OKAYN '"Cataloger 1.97"',
  276.           '"'DirDis||NL||,
  277.            'Preserve image aspect: '||PreImgAsp||NL||,
  278.            'Catalog type: '||ColMode||NL||,
  279.            'Catalog size: '||PWI||'x'||PHE||NL||,
  280.            'Background color'||Col1||NL||,
  281.            '# of tiles: '||TWI||'x'||THI||NL||,
  282.            'Tile size: '||TWID||'x'||THEI||NL||,
  283.            'Text: '||TextDis||NL||,
  284.             SetLine09||,
  285.             SetLine10||,
  286.             SetLine11||,
  287.             SetLine12||,
  288.             SetLine13||,
  289.             SetLine14||,
  290.             SetLine15||,
  291.            'Thumbnail type: '||ThumbType||NL||,
  292.            'Thumbnail processing: '||ThPrDis||NL||,
  293.            'Tile borders: '||TileDis||NL||,
  294.             SetLine19||,
  295.            'Thumbnail borders: '||ThumbDis||NL||,
  296.             SetLine21||,
  297.             SetLine22||,
  298.            'Save format: '||CatForm||NL||,
  299.            'Save image type: '||CatDis||NL||,
  300.            'Saver opts: '||OpsDis||NL||,
  301.             SetLine26||,
  302.            'File extension: '||CatSuff'"',
  303.            '"Use|Load|Edit|Save As|Quit"'
  304.     ChoiceNum=rc
  305.     IF ChoiceNum=0 THEN ChoiceNum=5
  306.    END
  307.    IF Vrsn='OLD' THEN DO
  308.     zz=0
  309.     ChoiceNum=0
  310.     DO WHILE ChoiceNum=0
  311.      zz=zz+1
  312.      IF zz=6 THEN zz=1
  313.      IF zz=1 THEN Option='Use    '
  314.      IF zz=2 THEN Option='Load   '
  315.      IF zz=3 THEN Option='Edit   '
  316.      IF zz=4 THEN Option='Save As'
  317.      IF zz=5 THEN Option='Quit   '
  318.      IF TextDis='On' THEN DO
  319.       SetLine06='Text: '||TextDis||'  Position: '||TxtYPos||' '||TxtXPos||NL
  320.       SetLine07=' Image size: '||SizeDis||'  Image colors: '||DepthDis||NL
  321.       SetLine08=' Font: '||FName||' '||Fsize||NL
  322.       SetLine09=' Text color'||Col2||NL
  323.       SetLine10=' Mix highlight: '||TBMPct||'%%'||NL
  324.       IF TBMPct>0 THEN SetLine11='  Highlight color'||Col3||NL
  325.                   ELSE SetLine11=''
  326.      END
  327.      ELSE DO
  328.       SetLine06='Text: '||TextDis||NL
  329.       SetLine07=''
  330.       SetLine08=''
  331.       SetLine09=''
  332.       SetLine10=''
  333.       SetLine11=''
  334.      END
  335.      IF TileDis='On' THEN SetLine13=' Tile border mode: '||TileBordDis||NL
  336.                      ELSE SetLine13=''
  337.      IF TileDis='On' | ThumbDis='On' THEN DO
  338.       SetLine14=' Border thickness: '||BordThick||NL
  339.       SetLine15=' Border color'||Col4||NL
  340.      END
  341.      ELSE DO
  342.       SetLine14=''
  343.       SetLine15=''
  344.      END
  345.      IF OpsDis='On' THEN SetLine18=' Opts: '||SavOps||NL
  346.                     ELSE SetLine18=''
  347.      ADPRO_TO_FRONT
  348.      OKAY2 DirDis||NL||,
  349.            'Preserve image aspect: '||PreImgAsp||NL||,
  350.            'Catalog type & size: '||ColMode||' '||PWI||'x'||PHE||NL||,
  351.            'Background color'||Col1||NL||,
  352.            '# & size of tiles: '||TWI||'x'||THI||' '||TWID||'x'||THEI||NL||,
  353.             SetLine06||,
  354.             SetLine07||,
  355.             SetLine08||,
  356.             SetLine09||,
  357.             SetLine10||,
  358.             SetLine11||,
  359.            'Thumbnail type: '||ThumbType||'  Processing: '||ThPrDis||NL||,
  360.            'Borders:  Tile: '||TileDis||'  Thumbnail: '||ThumbDis||NL||,
  361.             SetLine13||,
  362.             SetLine14||,
  363.             SetLine15||,
  364.            'Save format & type: '||CatForm||' '||CatDis||NL||,
  365.            'Saver opts: '||OpsDis||NL||,
  366.             SetLine18||,
  367.            'File extension: '||CatSuff||NL||,
  368.            'OK='||Option||'          Cancel=Next Option'
  369.      IF rc=1 THEN ChoiceNum=zz
  370.     END
  371.    END
  372.    IF ChoiceNum=5 THEN CALL RestoreExit 0
  373.    IF ChoiceNum=2 THEN DO
  374.     ADPRO_TO_FRONT
  375.     GETFILE '"Select settings file"' '"'||PrefsDir||'"' '"'||PrefsFile||'"'
  376.     IF rc=0 THEN DO
  377.      Settings=ADPro_Result
  378.      FindPrefs='False'
  379.      IF OPEN(Prefs,Settings,"R") THEN DO
  380.       CatVersion=READLN(Prefs)
  381.       IF WORD(CatVersion,1)='Cataloger' & WORD(CatVersion,2)<=1.97 THEN DO
  382.        DirMode=READLN(Prefs)
  383.        SkipType=READLN(Prefs)
  384.        PreImgAsp=READLN(Prefs)
  385.        PWI=READLN(Prefs)
  386.        PHE=READLN(Prefs)
  387.        ColMode=READLN(Prefs)
  388.        TWI=READLN(Prefs)
  389.        THI=READLN(Prefs)
  390.        UseTex=READLN(Prefs)
  391.        FName=READLN(Prefs)
  392.        FType=READLN(Prefs)
  393.        FSize=READLN(Prefs)
  394.        SizeTex=READLN(Prefs)
  395.        CatForm=READLN(Prefs)
  396.        CatMode=READLN(Prefs)
  397.        UseOps=READLN(Prefs)
  398.        SavOps=READLN(Prefs)
  399.        BackCol=READLN(Prefs)
  400.        TexCol=READLN(Prefs)
  401.        TexBacCol=READLN(Prefs)
  402.        CatSuff=READLN(Prefs)
  403.        ThumbType=READLN(Prefs)
  404.        TBMPct=READLN(Prefs)
  405.        TileBord=READLN(Prefs)
  406.        ThumBord=READLN(Prefs)
  407.        BordCol=READLN(Prefs)
  408.        TWID=READLN(Prefs)
  409.        THEI=READLN(Prefs)
  410.        TxtYPos=READLN(Prefs)
  411.        TxtXPos=READLN(Prefs)
  412.        ThumbProcess=READLN(Prefs)
  413.        SortList=READLN(Prefs)
  414.        DepthTex=READLN(Prefs)
  415.        BordThick=READLN(Prefs)
  416.        TileBordMode=READLN(Prefs)
  417.        CheckBuf='NO'
  418.        FindPrefs='True'
  419.       END
  420.       CALL CLOSE(Prefs)
  421.      END
  422.      IF FindPrefs='False' THEN DO
  423.       ADPRO_TO_FRONT
  424.       OKAY1 'Could not load settings file:'||NL||,
  425.             '"'||Settings||'"'
  426.      END
  427.     END
  428.    END
  429.    IF ChoiceNum=3 THEN DO
  430.     KeepOrg='No'
  431.     DirMode2=DirMode
  432.     SkipType2=SkipType
  433.     SortList2=SortList
  434.     PreImgAsp2=PreImgAsp
  435.     ColMode2=ColMode
  436.     PWI2=PWI
  437.     PHE2=PHE
  438.     BackCol2=BackCol
  439.     TWI2=TWI
  440.     THI2=THI
  441.     TWID2=TWID
  442.     THEI2=THEI
  443.     UseTex2=UseTex
  444.     TxtYPos2=TxtYPos
  445.     TxtXPos2=TxtXPos
  446.     SizeTex2=SizeTex
  447.     DepthTex2=DepthTex
  448.     FName2=FName
  449.     FType2=FType
  450.     FSize2=FSize
  451.     TexCol2=TexCol
  452.     TBMPct2=TBMPct
  453.     TexBacCol2=TexBacCol
  454.     ThumbType2=ThumbType
  455.     ThumbProcess2=ThumbProcess
  456.     TileBord2=TileBord
  457.     TileBordMode2=TileBordMode
  458.     ThumBord2=ThumBord
  459.     BordThick2=BordThick
  460.     BordCol2=BordCol
  461.     CatForm2=CatForm
  462.     CatMode2=CatMode
  463.     UseOps2=UseOps
  464.     SavOps2=SavOps
  465.     CatSuff2=CatSuff
  466.     IF Vrsn='NEW' THEN DO
  467.      ADPRO_TO_FRONT
  468.      OKAYN '"Cataloger 1.97"',
  469.            '"Do you want to catalog:'||NL||NL||,
  470.             ' · An entire directory'||NL||,
  471.             ' · A partial directory'||NL||,
  472.             ' · From a file list'||NL||,
  473.             ' · From a FRED Sequence file"',
  474.             "Entire|Partial|List|Sequence"
  475.      Choice=rc
  476.      if Choice=0 then Choice=4
  477.     END
  478.     IF Vrsn='OLD' THEN DO
  479.      zz=0
  480.      Choice=0
  481.      DO WHILE Choice=0
  482.       zz=zz+1
  483.       IF zz=5 THEN zz=1
  484.       IF zz=1 THEN Option='an entire directory'
  485.       IF zz=2 THEN Option='a partial directory'
  486.       IF zz=3 THEN Option='from a file list'
  487.       IF zz=4 THEN Option='from a FRED Sequence file'
  488.       ADPRO_TO_FRONT
  489.       OKAY2 'Do you want to catalog'||NL||,
  490.             Option||'?'
  491.       IF rc=1 THEN Choice=zz
  492.      END
  493.     END
  494.     if Choice=1 then DirMode='entire'
  495.     if Choice=2 then DirMode='partial'
  496.     if Choice=3 then DirMode='List'
  497.     if Choice=4 then DirMode='Seq'
  498.     IF Vrsn='NEW' & (DirMode='partial' | DirMode='entire') THEN DO
  499.      ADPRO_TO_FRONT
  500.      OKAYN '"Cataloger 1.97"',
  501.            '"What type of files do'||NL||,
  502.             'you want to ignore?"',
  503.             "Icons|Non-icons|None"
  504.      if rc=0 then SkipType='none'
  505.      if rc=1 then SkipType='icons'
  506.      if rc=2 then SkipType='non-icons'
  507.     END
  508.     IF DirMode='List' | DirMode='Seq' THEN DO
  509.      IF Vrsn='NEW' THEN DO
  510.       ADPRO_TO_FRONT
  511.       OKAYN '"Cataloger 1.97"',
  512.             '"Do you want the files to be'||NL||,
  513.              'alphabetically sorted?"',
  514.              "Yes|No"
  515.      END
  516.      IF Vrsn='OLD' THEN DO
  517.       ADPRO_TO_FRONT
  518.       OKAY2 'Do you want the files to be'||NL||,
  519.             'alphabetically sorted?'
  520.      END
  521.      if rc=0 then SortList='unsorted'
  522.              else SortList='sorted'
  523.     END
  524.     IF Vrsn='NEW' THEN DO
  525.      ADPRO_TO_FRONT
  526.      OKAYN '"Cataloger 1.97"',
  527.            '"Do you want to preserve the'||NL||,
  528.             'original image aspect?"',
  529.             "Yes|No"
  530.     END
  531.     IF Vrsn='OLD' THEN DO
  532.      ADPRO_TO_FRONT
  533.      OKAY2 'Do you want to preserve the'||NL||,
  534.            'original image aspect?'
  535.     END
  536.     if rc=0 then PreImgAsp='No'
  537.             else PreImgAsp='Yes'
  538.     Continue='False'
  539.     DO WHILE Continue='False'
  540.      IF Vrsn='NEW' THEN DO
  541.       ADPRO_TO_FRONT
  542.       OKAYN '"Cataloger 1.97"',
  543.             '"What type of catalog'||NL||,
  544.              'do you want to make?"',
  545.              "Color|Gray"
  546.      END
  547.      IF Vrsn='OLD' THEN DO
  548.       ADPRO_TO_FRONT
  549.       OKAY2 'What type of catalog'||NL||,
  550.             'do you want to make?'||NL||,
  551.             'OK=Color Cancel=Gray'
  552.      END
  553.      if rc=0 then ColMode='Gray'
  554.              else ColMode='Color'
  555.      ADPRO_TO_FRONT
  556.      GETNUMBER '"Catalog width"' PWI2 3 16383
  557.      if rc=10 then do
  558.       KeepOrg='Yes'
  559.       Continue='True'
  560.      end
  561.      else PWI=ADPro_Result
  562.      IF KeepOrg='No' THEN DO
  563.       ADPRO_TO_FRONT
  564.       GETNUMBER '"Catalog height"' PHE2 3 16383
  565.       if rc=10 then do
  566.        KeepOrg='Yes'
  567.        Continue='True'
  568.       end
  569.       else PHE=ADPro_Result
  570.      END
  571.      IF KeepOrg='No' THEN DO
  572.       LFORMAT 'BACKDROP'
  573.       IF rc=10 THEN DO
  574.        ADPRO_TO_FRONT
  575.        OKAY1 'Error: Loader not found'||NL||,
  576.              '"Loaders2/BACKDROP"'
  577.        CALL RestoreExit 10
  578.       END
  579.       LOAD "X" PWI PHE ColMode
  580.       IF rc=0 THEN DO
  581.        Continue='True'
  582.        CheckBuf='YES'
  583.       END
  584.       ELSE DO
  585.        ADPRO_TO_FRONT
  586.        OKAY1 'Error: ADPro''s image buffer'||NL||,
  587.              'is too small for a catalog'||NL||,
  588.              'of that type/size'
  589.       END
  590.      END
  591.     END
  592.     IF KeepOrg='No' THEN DO
  593.      IF ColMode='Color' THEN DO
  594.       ADPRO_TO_FRONT
  595.       GETNUMBER "'Background color (Red)'" WORD(BackCol2,1) 0 255
  596.       if rc=10 then KeepOrg='Yes'
  597.                else BackCol=adpro_result||' '
  598.       IF KeepOrg='No' THEN DO
  599.        ADPRO_TO_FRONT
  600.        GETNUMBER "'Background color (Green)'" WORD(BackCol2,2) 0 255
  601.        if rc=10 then KeepOrg='Yes'
  602.                 else BackCol=BackCol||adpro_result||' '
  603.       END
  604.       IF KeepOrg='No' THEN DO
  605.        ADPRO_TO_FRONT
  606.        GETNUMBER "'Background color (Blue)'" WORD(BackCol2,3) 0 255
  607.        if rc=10 then KeepOrg='Yes'
  608.                 else BackCol=BackCol||adpro_result
  609.       END
  610.      END
  611.      ELSE DO
  612.       ADPRO_TO_FRONT
  613.       GETNUMBER "'Background color (Gray)'" WORD(BackCol2,2) 0 255
  614.       if rc=10 then KeepOrg='Yes'
  615.                else BackCol=adpro_result||' '||adpro_result||' '||adpro_result
  616.      END
  617.     END
  618.     IF KeepOrg='No' THEN DO
  619.      ADPRO_TO_FRONT
  620.      GETNUMBER "'# of tiles in width'" TWI2 1 TRUNC((PWI-1)/2)
  621.      if rc=10 then KeepOrg='Yes'
  622.               else TWI=ADPro_Result
  623.     END
  624.     IF KeepOrg='No' THEN DO
  625.      ADPRO_TO_FRONT
  626.      GETNUMBER "'# of tiles in height'" THI2 1 TRUNC((PHE-1)/2)
  627.      if rc=10 then KeepOrg='Yes'
  628.               else THI=ADPro_Result
  629.     END
  630.     IF KeepOrg='No' THEN DO
  631.      ADPRO_TO_FRONT
  632.      GETNUMBER "'Tile width'" TWID2 1 TRUNC((PWI-TWI-1)/TWI)
  633.      if rc=10 then KeepOrg='Yes'
  634.               else TWID=ADPro_Result
  635.     END
  636.     IF KeepOrg='No' THEN DO
  637.      ADPRO_TO_FRONT
  638.      GETNUMBER "'Tile height'" THEI2 1 TRUNC((PHE-THI-1)/THI)
  639.      if rc=10 then KeepOrg='Yes'
  640.               else THEI=ADPro_Result
  641.     END
  642.     IF KeepOrg='No' THEN DO
  643.      IF TWID>=5 & (THEI>=11 | (ThumbType='Large' & THEI>=9)) THEN DO
  644.       IF Vrsn='NEW' THEN DO
  645.        ADPRO_TO_FRONT
  646.        OKAYN '"Cataloger 1.97"',
  647.              '"Do you want text'||NL||,
  648.               'to be enabled?"',
  649.               "Yes|No"
  650.       END
  651.       IF Vrsn='OLD' THEN DO
  652.        ADPRO_TO_FRONT
  653.        OKAY2 'Do you want text'||NL||,
  654.              'to be enabled?'
  655.       END
  656.       if rc=0 then UseTex='No'
  657.               else UseTex='Yes'
  658.      END
  659.      ELSE UseTex='No'
  660.      IF UseTex='Yes' THEN DO
  661.       IF Vrsn='NEW' THEN DO
  662.        ADPRO_TO_FRONT
  663.        OKAYN '"Cataloger 1.97"',
  664.              '"Where do you want the text'||NL||,
  665.               'to appear on each tile?"',
  666.               "Top|Bottom"
  667.       END
  668.       IF Vrsn='OLD' THEN DO
  669.        ADPRO_TO_FRONT
  670.        OKAY2 'Where do you want the text'||NL||,
  671.              'to appear on each tile?'||NL||,
  672.              'OK=Top       Cancel=Bottom'
  673.       END
  674.       if rc=0 then TxtYPos='Bottom'
  675.               else TxtYPos='Top'
  676.       IF Vrsn='NEW' THEN DO
  677.        ADPRO_TO_FRONT
  678.        OKAYN '"Cataloger 1.97"',
  679.              '"Where do you want the text to'||NL||,
  680.               'be aligned on each tile?"',
  681.               "Left|Center|Right"
  682.        ChoiceNum=rc+1
  683.       END
  684.       IF Vrsn='OLD' THEN DO
  685.        zz=1
  686.        ChoiceNum=0
  687.        DO WHILE ChoiceNum=0
  688.         zz=zz+1
  689.         IF zz=4 THEN zz=1
  690.         IF zz=1 THEN Option='Right '
  691.         IF zz=2 THEN Option='Left  '
  692.         IF zz=3 THEN Option='Center'
  693.         ADPRO_TO_FRONT
  694.         OKAY2 'Where do you want the text to'||NL||,
  695.               'be aligned on each tile?'||NL||,
  696.               'OK='||Option||' Cancel=Next Option'
  697.         IF rc=1 THEN ChoiceNum=zz
  698.        END
  699.       END
  700.       IF ChoiceNum=1 THEN TxtXPos='right'
  701.       IF ChoiceNum=2 THEN TxtXPos='left'
  702.       IF ChoiceNum=3 THEN TxtXPos='center'
  703.       ChoiceNum=3
  704.       IF Vrsn='NEW' THEN DO
  705.        ADPRO_TO_FRONT
  706.        OKAYN '"Cataloger 1.97"',
  707.              '"Do you want the text to'||NL||,
  708.               'include the image size?"',
  709.               "Yes|No"
  710.       END
  711.       IF Vrsn='OLD' THEN DO
  712.        ADPRO_TO_FRONT
  713.        OKAY2 'Do you want the text to'||NL||,
  714.              'include the image size?'
  715.       END
  716.       if rc=0 then SizeTex='No'
  717.               else SizeTex='Yes'
  718.       IF Vrsn='NEW' THEN DO
  719.        ADPRO_TO_FRONT
  720.        OKAYN '"Cataloger 1.97"',
  721.              '"Do you want the text to include the'||NL||,
  722.               'number of colors in the image?"',
  723.               "Yes|No"
  724.       END
  725.       IF Vrsn='OLD' THEN DO
  726.        ADPRO_TO_FRONT
  727.        OKAY2 'Do you want the text to include the'||NL||,
  728.              'number of colors in the image?'
  729.       END
  730.       if rc=0 then DepthTex='No'
  731.               else DepthTex='Yes'
  732.       ValidFont='No'
  733.       DO WHILE ValidFont='No'
  734.        ValidFont='Yes'
  735.        MaxSize=THEI-8
  736.        IF ThumbType='Small' THEN MaxSize=MaxSize-2
  737.        IF MaxSize>127 THEN MaxSize=127
  738.        Continue='False'
  739.        DO WHILE Continue='False'
  740.         FName=''
  741.         DO WHILE FName=''
  742.          ADPRO_TO_FRONT
  743.          GETSTRING '"Font"' '"'FName2'"'
  744.          if rc=10 then do
  745.           KeepOrg='Yes'
  746.           FName=FName2
  747.           Continue='True'
  748.          end
  749.          else FName=ADPro_Result
  750.         END
  751.         IF KeepOrg='No' THEN DO
  752.          IF EXISTS('FONTS:'||FName||'.font') THEN Continue='True'
  753.          ELSE DO
  754.           ADPRO_TO_FRONT
  755.           OKAY1 'Error: File not found'||NL||,
  756.                 '"FONTS:'||FName||'.font"'
  757.          END
  758.         END
  759.        END
  760.        IF KeepOrg='No' THEN DO
  761.         ADPRO_TO_FRONT
  762.         GETNUMBER "'Font size'" FSize2 1 MaxSize
  763.         if rc=10 then KeepOrg='Yes'
  764.                  else FSize=adpro_result
  765.        END
  766.        IF KeepOrg='No' THEN DO
  767.         IF EXISTS('FONTS:'||FName||'/'||FSize'') THEN FType='BITMAPPED'
  768.         ELSE DO
  769.          IF EXISTS('FONTS:'||FName||'.otag') THEN FType='SCALED'
  770.          ELSE DO
  771.           IF EXISTS('FONTS:'||FName'') THEN FType='BITMAPPED'
  772.           ELSE DO
  773.            ADPRO_TO_FRONT
  774.            OKAY1 'Error: Could not load font'||NL||,
  775.                   FName
  776.            ValidFont='No'
  777.           END
  778.          END
  779.         END
  780.        END
  781.       END
  782.       IF KeepOrg='No' THEN DO
  783.        IF ColMode='Color' THEN DO
  784.         ADPRO_TO_FRONT
  785.         GETNUMBER "'Text color (Red)'" WORD(TexCol2,1) 0 255
  786.         if rc=10 then KeepOrg='Yes'
  787.                  else TexCol=adpro_result||' '
  788.         IF KeepOrg='No' THEN DO
  789.          ADPRO_TO_FRONT
  790.          GETNUMBER "'Text color (Green)'" WORD(TexCol2,2) 0 255
  791.          if rc=10 then KeepOrg='Yes'
  792.                   else TexCol=TexCol||adpro_result||' '
  793.         END
  794.         IF KeepOrg='No' THEN DO
  795.          ADPRO_TO_FRONT
  796.          GETNUMBER "'Text color (Blue)'" WORD(TexCol2,3) 0 255
  797.          if rc=10 then KeepOrg='Yes'
  798.                   else TexCol=TexCol||adpro_result
  799.         END
  800.        END
  801.        ELSE DO
  802.         ADPRO_TO_FRONT
  803.         GETNUMBER "'Text color (Gray)'" WORD(TexCol2,1) 0 255
  804.         if rc=10 then KeepOrg='Yes'
  805.                  else TexCol=adpro_result||' '||adpro_result||' '||adpro_result
  806.        END
  807.       END
  808.       IF KeepOrg='No' THEN DO
  809.        ADPRO_TO_FRONT
  810.        GETNUMBER "'Text highlight mix %'" TBMPct2 0 100
  811.        if rc=10 then KeepOrg='Yes'
  812.                 else TBMPct=adpro_result
  813.       END
  814.       IF KeepOrg='No' THEN DO
  815.        IF TBMPct>0 THEN DO
  816.         IF ColMode='Color' THEN DO
  817.          ADPRO_TO_FRONT
  818.          GETNUMBER "'Highlight color (Red)'" WORD(TexBacCol2,1) 0 255
  819.          if rc=10 then KeepOrg='Yes'
  820.                   else TexBacCol=adpro_result||' '
  821.          IF KeepOrg='No' THEN DO
  822.           ADPRO_TO_FRONT
  823.           GETNUMBER "'Highlight color (Green)'" WORD(TexBacCol2,2) 0 255
  824.           if rc=10 then KeepOrg='Yes'
  825.                    else TexBacCol=TexBacCol||adpro_result||' '
  826.          END
  827.          IF KeepOrg='No' THEN DO
  828.           ADPRO_TO_FRONT
  829.           GETNUMBER "'Highlight color (Blue)'" WORD(TexBacCol2,3) 0 255
  830.           if rc=10 then KeepOrg='Yes'
  831.                    else TexBacCol=TexBacCol||adpro_result
  832.          END
  833.         END
  834.         ELSE DO
  835.          ADPRO_TO_FRONT
  836.          GETNUMBER "'Highlight color (Gray)'" WORD(TexBacCol2,1) 0 255
  837.          if rc=10 then KeepOrg='Yes'
  838.                   else TexBacCol=adpro_result||' '||adpro_result||' '||adpro_result
  839.         END
  840.        END
  841.       END
  842.      END
  843.     END
  844.     IF KeepOrg='No' THEN DO
  845.      IF UseTex='Yes' THEN DO
  846.       IF Vrsn='NEW' THEN DO
  847.        ADPRO_TO_FRONT
  848.        OKAYN '"Cataloger 1.97"',
  849.              '"What type of thumbnail'||NL||,
  850.               'do you want to use?"',
  851.               "Large|Small"
  852.       END
  853.       IF Vrsn='OLD' THEN DO
  854.        ADPRO_TO_FRONT
  855.        OKAY2 'What type of thumbnail'||NL||,
  856.              'do you want to use?'||NL||,
  857.              'OK=Large  Cancel=Small'
  858.       END
  859.       if rc=0 then ThumbType='Small'
  860.               else ThumbType='Large'
  861.      END
  862.      ELSE ThumbType='Large'
  863.      IF Vrsn='NEW' THEN DO
  864.       ADPRO_TO_FRONT
  865.       OKAYN '"Cataloger 1.97"',
  866.             '"Do you want custom thumbnail'||NL||,
  867.              'processing to be enabled?"',
  868.              "Yes|No"
  869.      END
  870.      IF Vrsn='OLD' THEN DO
  871.       ADPRO_TO_FRONT
  872.       OKAY2 'Do you want custom thumbnail'||NL||,
  873.             'processing to be enabled?'
  874.      END
  875.      if rc=0 then ThumbProcess='No'
  876.              else ThumbProcess='Yes'
  877.      IF Vrsn='NEW' THEN DO
  878.       ADPRO_TO_FRONT
  879.       OKAYN '"Cataloger 1.97"',
  880.             '"Do you want to have a border'||NL||,
  881.              'around each tile?"',
  882.              "Yes|No"
  883.      END
  884.      IF Vrsn='OLD' THEN DO
  885.       ADPRO_TO_FRONT
  886.       OKAY2 'Do you want to have a border'||NL||,
  887.             'around each tile?'
  888.      END
  889.      if rc=0 then TileBord='No'
  890.              else TileBord='Yes'
  891.      IF TileBord='Yes' THEN DO
  892.       IF Vrsn='NEW' THEN DO
  893.        ADPRO_TO_FRONT
  894.        OKAYN '"Cataloger 1.97"',
  895.              '"Do you want to have tile borders'||NL||,
  896.               'around all tiles or only those'||NL||,
  897.               'that contain an image?"',
  898.               "'All|Only Images'"
  899.       END
  900.       IF Vrsn='OLD' THEN DO
  901.        ADPRO_TO_FRONT
  902.        OKAY2 'Do you want to have tile borders'||NL||,
  903.              'around all tiles or only those'||NL||,
  904.              'that contain an image?'||NL||,
  905.              'OK=All        Cancel=Only Images'
  906.       END
  907.       if rc=0 then TileBordMode='Images'
  908.               else TileBordMode='All'
  909.      END
  910.      IF (PreImgAsp='Yes' & ThumbType='Large' & UseTex='Yes') | (((PreImgAsp='No' & ThumbType='Large') | (TWID=1 & THEI=1)) & TileBord='Yes') THEN ThumBord='No'
  911.      ELSE DO
  912.       IF Vrsn='NEW' THEN DO
  913.        ADPRO_TO_FRONT
  914.        OKAYN '"Cataloger 1.97"',
  915.              '"Do you want to have a border'||NL||,
  916.               'around each thumbnail?"',
  917.               "Yes|No"
  918.       END
  919.       IF Vrsn='OLD' THEN DO
  920.        ADPRO_TO_FRONT
  921.        OKAY2 'Do you want to have a border'||NL||,
  922.              'around each thumbnail?'
  923.       END
  924.       if rc=0 then ThumBord='No'
  925.               else ThumBord='Yes'
  926.      END
  927.      IF TileBord='Yes' | ThumBord='Yes' THEN DO
  928.       IF ThumbType='Small' & ThumBord='Yes' THEN MaxBordThick=1
  929.       ELSE DO
  930.        IF TRUNC((PWI-TWI-1)/TWI)-TWID>TRUNC((PHE-THI-1)/THI)-THEI THEN MaxBordThick=TRUNC(((PHE-THI-1)/THI+2-THEI)/2)
  931.                                                                   ELSE MaxBordThick=TRUNC(((PWI-TWI-1)/TWI+2-TWID)/2)
  932.  
  933.       END
  934.       ADPRO_TO_FRONT
  935.       GETNUMBER "'Border thickness'" BordThick2 1 MaxBordThick
  936.       if rc=10 then KeepOrg='Yes'
  937.                else BordThick=adpro_result
  938.       IF ColMode='Color' THEN DO
  939.        IF KeepOrg='No' THEN DO
  940.         ADPRO_TO_FRONT
  941.         GETNUMBER "'Border color (Red)'" WORD(BordCol2,1) 0 255
  942.         if rc=10 then KeepOrg='Yes'
  943.                  else BordCol=adpro_result||' '
  944.        END
  945.        IF KeepOrg='No' THEN DO
  946.         ADPRO_TO_FRONT
  947.         GETNUMBER "'Border color (Green)'" WORD(BordCol2,2) 0 255
  948.         if rc=10 then KeepOrg='Yes'
  949.                  else BordCol=BordCol||adpro_result||' '
  950.        END
  951.        IF KeepOrg='No' THEN DO
  952.         ADPRO_TO_FRONT
  953.         GETNUMBER "'Border color (Blue)'" WORD(BordCol2,3) 0 255
  954.         if rc=10 then KeepOrg='Yes'
  955.                  else BordCol=BordCol||adpro_result
  956.        END
  957.       END
  958.       ELSE DO
  959.        IF KeepOrg='No' THEN DO
  960.         ADPRO_TO_FRONT
  961.         GETNUMBER "'Border color (Gray)'" WORD(BordCol2,1) 0 255
  962.         if rc=10 then KeepOrg='Yes'
  963.                  else BordCol=adpro_result||' '||adpro_result||' '||adpro_result
  964.        END
  965.       END
  966.      END
  967.     END
  968.     IF KeepOrg='No' THEN DO
  969.      IF Vrsn='NEW' THEN DO
  970.       SFORMAT CatForm2
  971.       GETLIST SAVERS
  972.       if rc=10 then do
  973.        ADPRO_TO_FRONT
  974.        okay1 'Error listing savers'
  975.        CALL RestoreExit 10
  976.       end
  977.       LISTVIEW '"Save format"' WORDS(ADPro_Result) ITEMS ADPro_Result
  978.       if rc>1 then KeepOrg='Yes'
  979.               else CatForm=SUBSTR(WORD(ADPro_Result,1),2,LENGTH(WORD(ADPro_Result,1))-2)
  980.      END
  981.      IF Vrsn='OLD' THEN DO
  982.       Continue='False'
  983.       DO WHILE Continue='False'
  984.        CatForm=''
  985.        DO WHILE CatForm=''
  986.         ADPRO_TO_FRONT
  987.         GETSTRING '"Save format"' '"'CatForm2'"'
  988.         if rc=10 then do
  989.          KeepOrg='Yes'
  990.          CatForm=CatForm2
  991.          Continue='True'
  992.         end
  993.         else CatForm=adpro_result
  994.        END
  995.        IF KeepOrg='No' THEN DO
  996.         IF EXISTS('Savers2/'||CatForm) THEN Continue='True'
  997.         ELSE DO
  998.          ADPRO_TO_FRONT
  999.          OKAY1 'Error: Saver not found'||NL||,
  1000.                '"Savers2/'||adpro_result||'"'
  1001.         END
  1002.        END
  1003.       END
  1004.      END
  1005.     END
  1006.     IF KeepOrg='No' THEN DO
  1007.      IF Vrsn='NEW' THEN DO
  1008.       ADPRO_TO_FRONT
  1009.       OKAYN '"Cataloger 1.97"',
  1010.             '"What type of image data'||NL||,
  1011.              'do you want to save?"',
  1012.              "Raw|Rendered"
  1013.      END
  1014.      IF Vrsn='OLD' THEN DO
  1015.       ADPRO_TO_FRONT
  1016.       OKAY2 'What type of image data'||NL||,
  1017.             'do you want to save?'||NL||,
  1018.             'OK=Raw  Cancel=Rendered'
  1019.      END
  1020.      if rc=0 then CatMode='Image'
  1021.              else CatMode='Raw'
  1022.      IF Vrsn='NEW' THEN DO
  1023.       ADPRO_TO_FRONT
  1024.       OKAYN '"Cataloger 1.97"',
  1025.             '"Do you want saver opts'||NL||,
  1026.              'to be enabled?"',
  1027.              "Yes|No"
  1028.      END
  1029.      IF Vrsn='OLD' THEN DO
  1030.       ADPRO_TO_FRONT
  1031.       OKAY2 'Do you want saver opts'||NL||,
  1032.             'to be enabled?'
  1033.      END
  1034.      if rc=0 then UseOps='No'
  1035.              else UseOps='Yes'
  1036.      IF UseOps='Yes' THEN DO
  1037.       ADPRO_TO_FRONT
  1038.       GETSTRING '"Saver opts"' '"'SavOps2'"'
  1039.       if rc=10 then KeepOrg='Yes'
  1040.                else SavOps=adpro_result
  1041.      END
  1042.     END
  1043.     IF KeepOrg='No' THEN DO
  1044.      ADPRO_TO_FRONT
  1045.      GETSTRING '"Catalog file extension"' '"'CatSuff2'"'
  1046.      if rc=10 then KeepOrg='Yes'
  1047.               else CatSuff=adpro_result
  1048.     END
  1049.     IF KeepOrg='Yes' THEN DO
  1050.      OKAY1 'Restoring previous settings'
  1051.      DirMode=DirMode2
  1052.      SkipType=SkipType2
  1053.      SortList=SortList2
  1054.      PreImgAsp=PreImgAsp2
  1055.      ColMode=ColMode2
  1056.      PWI=PWI2
  1057.      PHE=PHE2
  1058.      BackCol=BackCol2
  1059.      TWI=TWI2
  1060.      THI=THI2
  1061.      TWID=TWID2
  1062.      THEI=THEI2
  1063.      UseTex=UseTex2
  1064.      TxtYPos=TxtYPos2
  1065.      TxtXPos=TxtXPos2
  1066.      SizeTex=SizeTex2
  1067.      DepthTex=DepthTex2
  1068.      FName=FName2
  1069.      FType=FType2
  1070.      FSize=FSize2
  1071.      TexCol=TexCol2
  1072.      TBMPct=TBMPct2
  1073.      TexBacCol=TexBacCol2
  1074.      ThumbType=ThumbType2
  1075.      ThumbProcess=ThumbProcess2
  1076.      TileBord=TileBord2
  1077.      TileBordMode=TileBordMode2
  1078.      ThumBord=ThumBord2
  1079.      BordThick=BordThick2
  1080.      BordCol=BordCol2
  1081.      CatForm=CatForm2
  1082.      CatMode=CatMode2
  1083.      UseOps=UseOps2
  1084.      SavOps=SavOps2
  1085.      CatSuff=CatSuff2
  1086.     END
  1087.    END
  1088.    IF ChoiceNum=4 THEN DO
  1089.     Act=2
  1090.     DO WHILE Act=2
  1091.      ADPRO_TO_FRONT
  1092.      GETFILE '"Select settings file"' '"'||PrefsDir||'"' '"'||PrefsFile||'"'
  1093.      IF rc=0 THEN DO
  1094.       Settings=ADPro_Result
  1095.       IF EXISTS(Settings) THEN DO
  1096.        IF Vrsn='NEW' THEN DO
  1097.         ADPRO_TO_FRONT
  1098.         OKAYN '"Cataloger 1.97"',
  1099.               "'"""||Settings||""" exists."||NL||,
  1100.                "Replace it?'",
  1101.               '"Replace|Specify New Name...|Cancel"'
  1102.        END
  1103.        IF Vrsn='OLD' THEN DO
  1104.         ADPRO_TO_FRONT
  1105.         OKAY2 'The file:'||NL||,
  1106.               '"'||Settings||'"'||NL||,
  1107.               ' exists.'||NL||NL||,
  1108.               'Overwrite it?'
  1109.        END
  1110.        Act=rc
  1111.       END
  1112.       ELSE Act=1
  1113.       IF Act=1 THEN DO
  1114.        IF OPEN(Prefs2,Settings,"W") THEN DO
  1115.         CALL WriteLn(Prefs2,CatVersion)
  1116.         CALL WriteLn(Prefs2,DirMode)
  1117.         CALL WriteLn(Prefs2,SkipType)
  1118.         CALL WriteLn(Prefs2,PreImgAsp)
  1119.         CALL WriteLn(Prefs2,PWI)
  1120.         CALL WriteLn(Prefs2,PHE)
  1121.         CALL WriteLn(Prefs2,ColMode)
  1122.         CALL WriteLn(Prefs2,TWI)
  1123.         CALL WriteLn(Prefs2,THI)
  1124.         CALL WriteLn(Prefs2,UseTex)
  1125.         CALL WriteLn(Prefs2,FName)
  1126.         CALL WriteLn(Prefs2,FType)
  1127.         CALL WriteLn(Prefs2,FSize)
  1128.         CALL WriteLn(Prefs2,SizeTex)
  1129.         CALL WriteLn(Prefs2,CatForm)
  1130.         CALL WriteLn(Prefs2,CatMode)
  1131.         CALL WriteLn(Prefs2,UseOps)
  1132.         CALL WriteLn(Prefs2,SavOps)
  1133.         CALL WriteLn(Prefs2,BackCol)
  1134.         CALL WriteLn(Prefs2,TexCol)
  1135.         CALL WriteLn(Prefs2,TexBacCol)
  1136.         CALL WriteLn(Prefs2,CatSuff)
  1137.         CALL WriteLn(Prefs2,ThumbType)
  1138.         CALL WriteLn(Prefs2,TBMPct)
  1139.         CALL WriteLn(Prefs2,TileBord)
  1140.         CALL WriteLn(Prefs2,ThumBord)
  1141.         CALL WriteLn(Prefs2,BordCol)
  1142.         CALL WriteLn(Prefs2,TWID)
  1143.         CALL WriteLn(Prefs2,THEI)
  1144.         CALL WriteLn(Prefs2,TxtYPos)
  1145.         CALL WriteLn(Prefs2,TxtXPos)
  1146.         CALL WriteLn(Prefs2,ThumbProcess)
  1147.         CALL WriteLn(Prefs2,SortList)
  1148.         CALL WriteLn(Prefs2,DepthTex)
  1149.         CALL WriteLn(Prefs2,BordThick)
  1150.         CALL WriteLn(Prefs2,TileBordMode)
  1151.         CALL CLOSE(Prefs2)
  1152.        END
  1153.        ELSE DO
  1154.         ADPRO_TO_FRONT
  1155.         OKAY1 'Could not save settings file:'||NL||,
  1156.               '"'||Settings||'"'
  1157.        END
  1158.       END
  1159.      END
  1160.      ELSE Act=0
  1161.     END
  1162.    END
  1163.   END
  1164.   IF CheckBuf='NO' THEN DO
  1165.    LFORMAT 'BACKDROP'
  1166.    IF rc=10 THEN DO
  1167.     ADPRO_TO_FRONT
  1168.     OKAY1 'Error: Loader not found'||NL||,
  1169.           '"Loaders2/BACKDROP"'
  1170.     CALL RestoreExit 10
  1171.    END
  1172.    LOAD "X" PWI PHE ColMode
  1173.    IF rc~=0 THEN DO
  1174.     ADPRO_TO_FRONT
  1175.     OKAY1 'Error: ADPro''s image buffer'||NL||,
  1176.           'is too small for a catalog'||NL||,
  1177.           'of that type/size'
  1178.     BackToStart='Yes'
  1179.    END
  1180.   END
  1181.   IF BackToStart='No' THEN DO
  1182.    if DirMode='entire' then do
  1183.     ADPRO_TO_FRONT
  1184.     GETDIR "'Directory to catalog'" ImgDir||'"'
  1185.     if rc=10 then BackToStart='Yes'
  1186.     IF BackToStart='No' THEN DO
  1187.      TheDir='"'||adpro_result
  1188.      if TheDir~='"' & RIGHT(TheDir,1)~=':' & RIGHT(TheDir,1)~='/' then TheDir=TheDir||'/'
  1189.      IF TheDir~='"/' & RIGHT(TheDir,2)~='//' & RIGHT(TheDir,1)='/' THEN ImgDir=LEFT(TheDir,LENGTH(TheDir)-1)
  1190.                                                     ELSE ImgDir=TheDir
  1191.      fl=SHOWDIR(RIGHT(TheDir,LENGTH(TheDir)-1),'File','/')
  1192.      IF fl='' THEN DO
  1193.       OKAY1 'Error: Directory empty'||NL||,
  1194.              TheDir||'"'
  1195.       BackToStart='Yes'
  1196.      END
  1197.      IF BackToStart='No' THEN DO
  1198.       zz=INDEX(fl,'/')
  1199.       DO WHILE zz~=0
  1200.        fl=INSERT('"',fl,zz-1)
  1201.        zz=INDEX(fl,'/',zz+2)
  1202.       END
  1203.       fl=fl||'"'
  1204.      END
  1205.     END
  1206.    end
  1207.    if DirMode='partial' then do
  1208.     ADPRO_TO_FRONT
  1209.     GETFILES '"Select files to catalog"' ImgDir||'"' '"'||'"'
  1210.     if rc=10 then BackToStart='Yes'
  1211.     IF BackToStart='No' THEN DO
  1212.      fl=' '||adpro_result
  1213.      zz=INDEX(fl,'/')
  1214.      IF zz~=0 THEN DO
  1215.       Continue='False'
  1216.       DO WHILE Continue='False'
  1217.        yy=zz
  1218.        zz=INDEX(fl,'/',zz+1)
  1219.        IF zz=0 THEN Continue='True'
  1220.        ELSE DO
  1221.         IF ~EXISTS(SUBSTR(fl,3,zz-2)) THEN Continue='True'
  1222.        END
  1223.       END
  1224.       zz=yy
  1225.      END
  1226.      ELSE DO
  1227.       zz=POS(':',fl)
  1228.       IF zz=0 THEN zz=2
  1229.      END
  1230.      TheDir=LEFT(fl,zz)
  1231.      zz=1
  1232.      DO WHILE zz~=0
  1233.       fl=DELSTR(fl,zz,LENGTH(TheDir))
  1234.       fl=INSERT('/',fl,zz-1)
  1235.       zz=INDEX(fl,TheDir)
  1236.      END
  1237.      fl=SUBSTR(fl,2,LENGTH(fl)-2)
  1238.      TheDir=RIGHT(TheDir,LENGTH(TheDir)-1)
  1239.      IF TheDir~='"/' & RIGHT(TheDir,2)~='//' & RIGHT(TheDir,1)='/' THEN ImgDir=LEFT(TheDir,LENGTH(TheDir)-1)
  1240.                                                     ELSE ImgDir=TheDir
  1241.     END
  1242.    end
  1243.    IF (DirMode='partial' | DirMode='entire') & BackToStart='No' THEN DO
  1244.     fl=translate(fl,'09'x,' ')
  1245.     fl=translate(fl,' ','/')
  1246.     IF Vrsn='OLD' THEN IgnoreType='icons'
  1247.                   ELSE IgnoreType=SkipType
  1248.     zz=1
  1249.     DO WHILE zz<=WORDS(fl)
  1250.      IF IgnoreType='icons' THEN DO
  1251.       IF RIGHT(WORD(fl,zz),6)='.info"' THEN DO
  1252.        fl=DELWORD(fl,zz,1)
  1253.        zz=zz-1
  1254.       END
  1255.      END
  1256.      IF IgnoreType='non-icons' THEN DO
  1257.       IF RIGHT(WORD(fl,zz),6)~='.info"' THEN DO
  1258.        fl=DELWORD(fl,zz,1)
  1259.        zz=zz-1
  1260.       END
  1261.      END
  1262.      zz=zz+1
  1263.     END
  1264.     IF fl='' THEN DO
  1265.      ADPRO_TO_FRONT
  1266.      OKAY1 'Error: All of the selected files'||NL||,
  1267.            'were '||IgnoreType||'.'
  1268.      BackToStart='Yes'
  1269.     END
  1270.    END
  1271.    if DirMode='List' then do
  1272.     ADPRO_TO_FRONT
  1273.     GETFILE '"Select list file"' '"'||ListDir||'"' '"'||ListFile||'"'
  1274.     if rc=10 then BackToStart='Yes'
  1275.     IF BackToStart='No' THEN DO
  1276.      ListFileName=ADPro_Result
  1277.      zz=LASTPOS('/',ListFileName)
  1278.      IF zz=0 THEN zz=INDEX(ListFileName,':')
  1279.      ListDir=LEFT(ListFileName,zz)
  1280.      ListFile=RIGHT(ListFileName,LENGTH(ListFileName)-zz)
  1281.      IF ListDir~='/' & RIGHT(ListDir,2)~='//' & RIGHT(ListDir,1)='/' THEN ListDir=LEFT(ListDir,LENGTH(ListDir)-1)
  1282.      IF OPEN(List,ListFileName,"R") THEN DO
  1283.       fl=''
  1284.       x=READLN(List)
  1285.       DO WHILE x~=''
  1286.        x='"'||x||'"'
  1287.        fl=fl||TRANSLATE(x,'09'x,' ')||' '
  1288.        x=READLN(List)
  1289.       END
  1290.       CALL CLOSE(List)
  1291.       IF fl='' THEN DO
  1292.        ADPRO_TO_FRONT
  1293.        OKAY1 'Error: There were no files in'||NL||,
  1294.               '"'||ListFileName||'"'
  1295.        BackToStart='Yes'
  1296.       END
  1297.      END
  1298.      ELSE DO
  1299.       ADPRO_TO_FRONT
  1300.       OKAY1 ListFileName||NL||,
  1301.            'could not be read.'
  1302.       BackToStart='Yes'
  1303.      END
  1304.     END
  1305.    end
  1306.    if DirMode='Seq' then do
  1307.     SeqFileName=''
  1308.     DO WHILE Right(SeqFileName,4)~='.seq'
  1309.      ADPRO_TO_FRONT
  1310.      GETFILE '"Select Sequence file"' '"'||SeqDir||'"' '"'||SeqFile||'"'
  1311.      if rc=10 then do
  1312.       BackToStart='Yes'
  1313.       SeqFileName='.seq'
  1314.      end
  1315.      IF BackToStart='No' THEN DO
  1316.       SeqFileName=ADPro_Result
  1317.       zz=LASTPOS('/',SeqFileName)
  1318.       IF zz=0 THEN zz=INDEX(SeqFileName,':')
  1319.       SeqDir=LEFT(SeqFileName,zz)
  1320.       SeqFile=RIGHT(SeqFileName,LENGTH(SeqFileName)-zz)
  1321.       IF SeqDir~='/' & RIGHT(SeqDir,2)~='//' & RIGHT(SeqDir,1)='/' THEN SeqDir=LEFT(SeqDir,LENGTH(SeqDir)-1)
  1322.       IF Right(SeqFileName,4)~='.seq' THEN OKAY1 SeqFileName||NL||,
  1323.                                             'does not end in the required'||NL||,
  1324.                                             'extension of ".seq".'
  1325.      END
  1326.     END
  1327.     IF BackToStart='No' THEN DO
  1328.      IF OPEN(SEQ,SeqFileName,"R") THEN DO
  1329.       fl=''
  1330.       x=READLN(SEQ)
  1331.       t=INDEX(x,'09'x)
  1332.       IF t=0 THEN t=1
  1333.       x=LEFT(x,t-1)
  1334.       DO WHILE x~=''
  1335.        IF INDEX(x,' ')=0 THEN x='"'||x||'"'
  1336.        fl=fl||TRANSLATE(x,'09'x,' ')||' '
  1337.        x=READLN(SEQ)
  1338.        t=INDEX(x,'09'x)
  1339.        IF t=0 THEN t=1
  1340.        x=LEFT(x,t-1)
  1341.       END
  1342.       CALL CLOSE(SEQ)
  1343.       IF fl='' THEN DO
  1344.         ADPRO_TO_FRONT
  1345.        OKAY1 'Error: There were no files in'||NL||,
  1346.               '"'||SeqFileName||'"'
  1347.        BackToStart='Yes'
  1348.       END
  1349.      END
  1350.      ELSE DO
  1351.       ADPRO_TO_FRONT
  1352.       OKAY1 SeqFileName||NL||,
  1353.            'could not be read.'
  1354.       BackToStart='Yes'
  1355.      END
  1356.     END
  1357.    end
  1358.    IF BackToStart='No' THEN DO
  1359.     ADPRO_TO_FRONT
  1360.     GETFILE "'Catalog base filename'" '"'||CatDir||'"' '"'||'"'
  1361.     if rc=10 then BackToStart='Yes'
  1362.     IF BackToStart='No' THEN DO
  1363.      CatFile='"'||ADPro_Result
  1364.      zz=LASTPOS('/',CatFile)
  1365.      IF zz=0 THEN zz=INDEX(CatFile,':')
  1366.      IF zz=0 THEN zz=1
  1367.      CatDir=SUBSTR(CatFile,2,zz-1)
  1368.      IF CatDir~='/' & RIGHT(CatDir,2)~='//' & RIGHT(CatDir,1)='/' THEN CatDir=LEFT(CatDir,LENGTH(CatDir)-1)
  1369.     END
  1370.    END
  1371.   END
  1372.  END
  1373.  IF Vrsn='NEW' THEN DO
  1374.   SET_ADPRO_PUBLIC
  1375.   ADProScrn=adpro_result
  1376.   SET_ADPRO_MODE
  1377.   ScreenWidth=WORD(ADPRO_RESULT,2)
  1378.   ScreenHeight=WORD(ADPRO_RESULT,3)
  1379.   ADPRO_TO_FRONT
  1380.   if ~open(CON,'con:'||TRUNC((ScreenWidth-OutWinX)/2)||'/'||TRUNC((ScreenHeight-OutWinY)/2)||'/'||OutWinX||'/'||OutWinY||'/Cataloger 1.97    Ctrl-C to abort/SCREEN '||ADProScrn,'W') then do
  1381.    ADPRO_TO_FRONT
  1382.    OKAY1 'Could not open output window'
  1383.    CALL RestoreExit 10
  1384.   end
  1385.  END
  1386.  IF Vrsn='OLD' THEN DO
  1387.   ADPRO_TO_BACK
  1388.   if ~open(CON,'con:0/1/'||OutWinX||'/'||OutWinY||'/Cataloger 1.97    Ctrl-C to abort','W') then do
  1389.    ADPRO_TO_FRONT
  1390.    OKAY1 'Could not open output window'
  1391.    CALL RestoreExit 10
  1392.   end
  1393.  END
  1394.  Line1=0
  1395.  IF DirMode='partial' | DirMode='entire' | ((DirMode='List' | DirMode='Seq') & SortList='sorted') THEN DO
  1396.   fl2=''
  1397.   IF WORDS(fl)>1 THEN DO
  1398.    CALL WriteLn(CON,'Sorting '||WORDS(fl)||' files...')
  1399.    Line1=LENGTH('Sorting '||WORDS(fl)||' files...')
  1400.   END
  1401.   DO i=1 TO WORDS(fl)
  1402.    Buff=WORD(fl,1)
  1403.    Delli=1
  1404.    DO j=1 TO WORDS(fl)
  1405.     IF DirMode='entire' | DirMode='partial' THEN DO
  1406.      File1=Buff
  1407.      File2=WORD(fl,j)
  1408.     END
  1409.     IF DirMode='List' | DirMode='Seq' THEN DO
  1410.      zz=LASTPOS('/',Buff)
  1411.      IF zz=0 THEN zz=INDEX(Buff,':')
  1412.      File1=RIGHT(Buff,LENGTH(Buff)-zz)
  1413.      zz=LASTPOS('/',WORD(fl,j))
  1414.      IF zz=0 THEN zz=INDEX(WORD(fl,j),':')
  1415.      File2=RIGHT(WORD(fl,j),LENGTH(WORD(fl,j))-zz)
  1416.     END
  1417.     File1=UPPER(TRANSLATE(File1,' ','09'x))
  1418.     File2=UPPER(TRANSLATE(File2,' ','09'x))
  1419.     IF File2<File1 THEN DO
  1420.      Buff=WORD(fl,j)
  1421.      Delli=j
  1422.     END
  1423.    END
  1424.    fl=DELWORD(fl,Delli,1)
  1425.    Buff=Buff||' '
  1426.    fl2=fl2||Buff
  1427.   END
  1428.   fl=fl2
  1429.  END
  1430.  CatNum=1
  1431.  k=0
  1432.  i=0
  1433.  cat.CatNum.0=0
  1434.  do i=1 to words(fl)
  1435.   k=k+1
  1436.   line=word(fl,i)
  1437.   cat.CatNum.k=TRANSLATE(line,' ','09'x)
  1438.   cat.CatNum.0=k
  1439.   if k=TWI*THI then do
  1440.    k=0
  1441.    CatNum=CatNum+1
  1442.    cat.CatNum.0=0
  1443.   end
  1444.  end
  1445.  if cat.CatNum.0=0 then CatNum=CatNum-1
  1446.  cat.0.0=12
  1447.  IF DirMode='List' | DirMode='Seq' THEN TheDir=''
  1448.  TextXPosit=TxtXPos
  1449.  IF TextXPosit='center' & (SizeTex='Yes' | DepthTex='Yes') THEN DO
  1450.   TextXPosit='left'
  1451.   SepSize='Yes'
  1452.  END
  1453.  ELSE SepSize='No'
  1454.  CatDataType=CatMode
  1455.  IF UseOps='No' THEN Ops=''
  1456.                 ELSE Ops=SavOps
  1457.  i=1
  1458.  do WHILE i<=CatNum
  1459.   j=1
  1460.   do WHILE j<=cat.i.0
  1461.    NoLoad='True'
  1462.    DO WHILE NoLoad='True'
  1463.     if CatNum=1 then catalogstring=''
  1464.                 else catalogstring='s'
  1465.     if (CatNum-1)*TWI*THI+cat.CatNum.0=1 then tilestring=''
  1466.                                          else tilestring='s'
  1467.     if cat.i.0=1 then catextstring=''
  1468.                  else catextstring='s'
  1469.     CALL WriteLn(CON,LUP||COPIES(' ',Line1))
  1470.     CALL WriteLn(CON,LUP||'Creating '||CatNum||' catalog'||catalogstring||' from '||(CatNum-1)*TWI*THI+cat.CatNum.0||' image file'||tilestring||':')
  1471.     Line1=LENGTH('Creating '||CatNum||' catalog'||catalogstring||' from '||(CatNum-1)*TWI*THI+cat.CatNum.0||' image file'||tilestring||':')
  1472.     IF i<=CatNum THEN DO
  1473.      CALL WriteLn(CON,' Creating catalog #'||i||' using '||cat.i.0||' image'||catextstring||':')
  1474.      Line2=LENGTH(' Creating catalog #'||i||' using '||cat.i.0||' image'||catextstring||':')
  1475.      IF j<=cat.i.0 THEN DO
  1476.       IF DirMode='partial' | DirMode='entire' THEN TXString='"'||cat.i.j
  1477.       IF DirMode='List' | DirMode='Seq' THEN DO
  1478.        zz=LASTPOS('/',cat.i.j)
  1479.        IF zz=0 THEN zz=INDEX(cat.i.j,':')
  1480.        TXString='"'||RIGHT(cat.i.j,LENGTH(cat.i.j)-zz)
  1481.       END
  1482.       CALL WriteLn(CON,'  Processing image #'||j||': '||TXString)
  1483.       Line3=LENGTH('  Processing image #'||j||': '||TXString)
  1484.       PosDCTV='No'
  1485.       IF UseDCTV='No' THEN NonIFF='Yes'
  1486.                       ELSE NonIFF='No'
  1487.       CALL WriteLn(CON,'   Loading...')
  1488.       Line4=13
  1489.       IF NonIFF='No' THEN DO
  1490.        LFORMAT 'IFF'
  1491.        IF rc=10 THEN DO
  1492.         ADPRO_TO_FRONT
  1493.         OKAY1 'Error: Loader not found'||NL||,
  1494.               '"Loaders2/IFF"'
  1495.         CALL RestoreExit 10
  1496.        END
  1497.        LOAD TheDir||cat.i.j
  1498.        if rc=10 then NonIFF='Yes'
  1499.        else do
  1500.         NoLoad='False'
  1501.         RENDER_TYPE
  1502.         IF ADPRO_RESULT=8 | ADPRO_RESULT=16 THEN PosDCTV='Yes'
  1503.        end
  1504.       END
  1505.       IF NonIFF='Yes' THEN DO
  1506.        LFORMAT 'UNIVERSAL'
  1507.        IF rc=10 THEN DO
  1508.         ADPRO_TO_FRONT
  1509.         OKAY1 'Error: Loader not found'||NL||,
  1510.               '"Loaders2/UNIVERSAL"'
  1511.         CALL RestoreExit 10
  1512.        END
  1513.        LOAD TheDir||cat.i.j
  1514.        if rc=0 then NoLoad='False'
  1515.       END
  1516.       IF ListMode='All' THEN DO
  1517.        CatListFileName=RIGHT(CatFile,LENGTH(CatFile)-1)||'.list.all'
  1518.        IF ~EXISTS(CatListFileName) THEN DO
  1519.         IF OPEN(ListAllFile,CatListFileName,'W') THEN CALL CLOSE(ListAllFile)
  1520.        END
  1521.        IF EXISTS(CatListFileName) & ~SHOW('FILES',ListAllFile) THEN CALL OPEN(ListAllFile,CatListFileName,'A')
  1522.        IF SHOW('FILES',ListAllFile) THEN DO
  1523.         CALL WRITELN(ListAllFile,SUBSTR(TheDir||cat.i.j,2,LENGTH(TheDir||cat.i.j)-2))
  1524.         IF i=CatNum & j=cat.i.0 THEN CALL CLOSE(ListAllFile)
  1525.        END
  1526.       END
  1527.       IF NoLoad='False' THEN DO
  1528.        IMAGE_TYPE
  1529.        ImgType=adpro_result
  1530.        IF ImgType='BITPLANE' THEN NoLoad='True'
  1531.        ELSE DO
  1532.         IF ListMode='Cataloged' | ListMode='Both' THEN DO
  1533.          CatListFileName=RIGHT(CatFile,LENGTH(CatFile)-1)||'.list.cataloged'
  1534.          IF ~EXISTS(CatListFileName) THEN DO
  1535.           IF OPEN(ListCatFile,CatListFileName,'W') THEN CALL CLOSE(ListCatFile)
  1536.          END
  1537.          IF EXISTS(CatListFileName) & ~SHOW('FILES',ListCatFile) THEN CALL OPEN(ListCatFile,CatListFileName,'A')
  1538.          IF SHOW('FILES',ListCatFile) THEN DO
  1539.           CALL WRITELN(ListCatFile,SUBSTR(TheDir||cat.i.j,2,LENGTH(TheDir||cat.i.j)-2))
  1540.           IF i=CatNum & j=cat.i.0 THEN CALL CLOSE(ListCatFile)
  1541.          END
  1542.         END
  1543.        END
  1544.       END
  1545.       IF NoLoad='True' THEN DO
  1546.        IF ListMode='Failed' | ListMode='Both' THEN DO
  1547.         CatListFileName=RIGHT(CatFile,LENGTH(CatFile)-1)||'.list.failed'
  1548.         IF ~EXISTS(CatListFileName) THEN DO
  1549.          IF OPEN(ListFailFile,CatListFileName,'W') THEN CALL CLOSE(ListFailFile)
  1550.         END
  1551.         IF EXISTS(CatListFileName) & ~SHOW('FILES',ListFailFile) THEN CALL OPEN(ListFailFile,CatListFileName,'A')
  1552.         IF SHOW('FILES',ListFailFile) THEN DO
  1553.          CALL WRITELN(ListFailFile,SUBSTR(TheDir||cat.i.j,2,LENGTH(TheDir||cat.i.j)-2))
  1554.          IF i=CatNum & j=cat.i.0 THEN CALL CLOSE(ListFailFile)
  1555.         END
  1556.        END
  1557.        IF ShowErrors='Yes' THEN DO
  1558.         ADPRO_TO_FRONT
  1559.         okay1 'Error loading file'||NL||,
  1560.                TheDir||cat.i.j
  1561.        END
  1562.        DO ii=1 TO CatNum
  1563.         kk=ii+1
  1564.         DO jj=1 TO cat.ii.0
  1565.          ll=jj+1
  1566.          IF ll<= cat.ii.0 THEN cat.ii.jj=cat.ii.ll
  1567.                           ELSE cat.ii.jj=cat.kk.1
  1568.         END
  1569.        END
  1570.        cat.CatNum.0=(Cat.CatNum.0)-1
  1571.        IF cat.CatNum.0=0 THEN CatNum=CatNum-1
  1572.        CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1573.        CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1574.        CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line2)||LUP)
  1575.       END
  1576.      END
  1577.      ELSE DO
  1578.       NoLoad='False'
  1579.       CALL WriteLn(CON,'')
  1580.       CALL WriteLn(CON,'')
  1581.      END
  1582.     END
  1583.     ELSE NoLoad='False'
  1584.    END
  1585.    IF j<=cat.i.0 THEN DO
  1586.     RENDER_TYPE
  1587.     RendType=ADPro_Result
  1588.     IF PosDCTV='Yes' & INDEX(ImgType,'BITPLANE')~=0 THEN DO
  1589.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1590.      CALL WriteLn(CON,LUP||'   Converting to raw image data...')
  1591.      Line4=34
  1592.      OPERATOR "RENDERED_TO_RAW"
  1593.      if rc=10 then do
  1594.       ADPRO_TO_FRONT
  1595.       okay1 'Error converting'||NL||,
  1596.             'rendered to raw'
  1597.       CALL RestoreExit 10
  1598.      end
  1599.     END
  1600.     IF ColMode='Gray' & WORD(ImgType,1)='COLOR' THEN DO
  1601.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1602.      CALL WriteLn(CON,LUP||'   Converting to grayscale...')
  1603.      Line4=29
  1604.      OPERATOR "COLOR_TO_GRAY"
  1605.      if rc=10 then do
  1606.       ADPRO_TO_FRONT
  1607.       okay1 'Error converting'||NL||,
  1608.             'color to gray'
  1609.       CALL RestoreExit 10
  1610.      end
  1611.     END
  1612.     XSIZE
  1613.     IWID=adpro_result
  1614.     YSIZE
  1615.     IHEI=adpro_result
  1616.     IF ThumbType='Small' THEN EfTHei=THEI-FSize-9
  1617.                          ELSE EfTHei=THEI
  1618.     IF PreImgAsp='Yes' THEN DO
  1619.      TIWID=TWID
  1620.      TIHEI=TWID/IWID*IHEI
  1621.      IF TIHEI>EfTHei THEN DO
  1622.       TIWID=EfTHei/IHEI*IWID
  1623.       TIHEI=EfTHei
  1624.      END
  1625.      TIWID=TRUNC(TIWID+.5)
  1626.      TIHEI=TRUNC(TIHEI+.5)
  1627.      IF TIWID=0 THEN TIWID=1
  1628.      IF TIHEI=0 THEN TIHEI=1
  1629.     END
  1630.     IF PreImgAsp='No' THEN DO
  1631.      TIWID=TWID
  1632.      TIHEI=EfTHei
  1633.     END
  1634.     IF IWID~=TIWID | IHEI~=TIHEI THEN DO
  1635.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1636.      CALL WriteLn(CON,LUP||'   Scaling to '||TIWID||'x'||TIHEI||'...')
  1637.      Line4=LENGTH('   Scaling to '||TIWID||'x'||TIHEI||'...')
  1638.      ABS_SCALE TIWID TIHEI
  1639.      if rc=10 then do
  1640.       ADPRO_TO_FRONT
  1641.       okay1 'Error scaling image'
  1642.       CALL RestoreExit 10
  1643.      end
  1644.     END
  1645.     IF ThumbProcess='Yes' THEN DO
  1646.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1647.      CALL WriteLn(CON,LUP||'   Processing thumbnail...')
  1648.      Line4=26
  1649. /***********ADD ANY OPERATIONS TO PERFORM ON EACH THUMBNAIL HERE************/
  1650.  
  1651. /***************************************************************************/
  1652.     END
  1653.     SFORMAT 'IFF'
  1654.     IF rc=10 THEN DO
  1655.      ADPRO_TO_FRONT
  1656.      OKAY1 'Error: Saver not found'||NL||,
  1657.            '"Savers2/IFF"'
  1658.      CALL RestoreExit 10
  1659.     END
  1660.     ThumbYOff=TRUNC((EfTHei-TIHEI)/2)
  1661.     IF ThumbType='Small' & TxtYPos='Top' THEN ThumbYOff=ThumbYOff+FSize+9
  1662.     IF TIWID<TWID | TIHEI<THEI THEN DO
  1663.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1664.      CALL WriteLn(CON,LUP||'   Saving temporary thumbnail...')
  1665.      Line4=32
  1666.      SAVE 'T:CAT.'||j RAW
  1667.      if rc=10 then do
  1668.       ADPRO_TO_FRONT
  1669.       okay1 'Error saving file'||NL||,
  1670.             '"T:CAT.'||j||'"'
  1671.       CALL RestoreExit 10
  1672.      end
  1673.      LFORMAT 'BACKDROP'
  1674.      IF rc=10 THEN DO
  1675.       ADPRO_TO_FRONT
  1676.       OKAY1 'Error: Loader not found'||NL||,
  1677.             '"Loaders2/BACKDROP"'
  1678.       CALL RestoreExit 10
  1679.      END
  1680.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1681.      CALL WriteLn(CON,LUP||'   Creating blank tile...')
  1682.      Line4=25
  1683.      LOAD "X" TWID THEI ColMode BackCol
  1684.      if rc~=0 then do
  1685.       ADPRO_TO_FRONT
  1686.       okay1 'Error creating blank tile'
  1687.       CALL RestoreExit 10
  1688.      end
  1689.      LFORMAT 'IFF'
  1690.      IF rc=10 THEN DO
  1691.       ADPRO_TO_FRONT
  1692.       OKAY1 'Error: Loader not found'||NL||,
  1693.             '"Loaders2/IFF"'
  1694.       CALL RestoreExit 10
  1695.      END
  1696.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1697.      CALL WriteLn(CON,LUP||'   Adding thumbnail...')
  1698.      Line4=22
  1699.      LOAD 'T:CAT.'||j TRUNC((TWID-TIWID)/2) ThumbYOff 100
  1700.      if rc=10 then do
  1701.       ADPRO_TO_FRONT
  1702.       okay1 'Error loading file'||NL||,
  1703.             '"T:CAT.'||j||'"'
  1704.       CALL RestoreExit 10
  1705.      end
  1706.     END
  1707.     IF UseTex='Yes' THEN DO
  1708.      IF TBMPct>0 THEN DO
  1709.       IF TxtYPos='Top' THEN TxtHighYOff=2
  1710.       IF TxtYPos='Bottom' THEN TxtHighYOff=THEI-FSize-6
  1711.       CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1712.       CALL WriteLn(CON,LUP||'   Adding text highlight...')
  1713.       Line4=27
  1714.       operator "RECTANGLE" 2 TxtHighYOff TWID-4 FSize+4 "-1" TexBacCol TBMPct
  1715.       IF rc=10 then do
  1716.        ADPRO_TO_FRONT
  1717.        okay1 'Error drawing'||NL||,
  1718.              'text highlight'
  1719.        CALL RestoreExit 10
  1720.       END
  1721.      END
  1722.      IF TextXPosit='left' THEN TxtXOff=4
  1723.      IF TextXPosit='center' THEN TxtXOff=TRUNC(TWID/2)
  1724.      IF TextXPosit='right' THEN TxtXOff=TWID-4
  1725.      IF TxtYPos='Top' THEN TxtYOff=4
  1726.      IF TxtYPos='Bottom' THEN TxtYOff=THEI-FSize-4
  1727.      IF ImgType='COLOR' THEN ImgDepth='24-bit'
  1728.      IF ImgType='GRAY' THEN ImgDepth='8-bit'
  1729.      IF INDEX(ImgType,'BITPLANE')~=0 THEN ImgDepth=RendType
  1730.      IF SizeTex='Yes' & DepthTex='No' THEN OtherText='  '||IWID||'x'||IHEI
  1731.      IF SizeTex='No' & DepthTex='Yes' THEN  OtherText='  '||ImgDepth
  1732.      IF SizeTex='Yes' & DepthTex='Yes' THEN OtherText='  '||IWID||'x'||IHEI||'x'||ImgDepth
  1733.      IF SizeTex='No' & DepthTex='No' THEN OtherText=''
  1734.      IF SepSize='No' THEN TXString=LEFT(TXString,LENGTH(TXString)-1)||OtherText||'"'
  1735.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1736.      CALL WriteLn(CON,LUP||'   Adding text...')
  1737.      Line4=17
  1738.      operator "TEXT_VISUAL" FONT_TYPE FType FONT_DIR "FONTS:" FONT_NAME FName,
  1739.                             SET_FONT_SIZE FSize SET_TEXT_STYLE 0 SET_TRACKING 0,
  1740.                             STRING TXString TEXT_HANDLE TextXPosit,
  1741.                             SET_XOFFSET TxtXOff SET_YOFFSET TxtYOff,
  1742.                             SET_BLUR "-1" EMBOSS_DIRECTION OFF RENDER_TYPE MIX,
  1743.                             SET_RENDER 100 SET_COLORS TexCol SET_TINT 0,
  1744.                             SET_SATURATION 0 DRAW
  1745.      IF rc=10 then do
  1746.       ADPRO_TO_FRONT
  1747.       okay1 'Error drawing text'
  1748.       CALL RestoreExit 10
  1749.      END
  1750.      IF SepSize='Yes' THEN DO
  1751.       operator "TEXT_VISUAL" FONT_TYPE FType FONT_DIR "FONTS:" FONT_NAME FName,
  1752.                              SET_FONT_SIZE FSize SET_TEXT_STYLE 0 SET_TRACKING 0,
  1753.                              STRING '"'||RIGHT(OtherText,LENGTH(OtherText)-2)||'"' TEXT_HANDLE RIGHT,
  1754.                              SET_XOFFSET TWID-4 SET_YOFFSET TxtYOff,
  1755.                              SET_BLUR "-1" EMBOSS_DIRECTION OFF RENDER_TYPE MIX,
  1756.                              SET_RENDER 100 SET_COLORS TexCol SET_TINT 0,
  1757.                              SET_SATURATION 0 DRAW
  1758.       IF rc=10 then do
  1759.        ADPRO_TO_FRONT
  1760.        okay1 'Error drawing text'
  1761.        CALL RestoreExit 10
  1762.       END
  1763.      END
  1764.     END
  1765.     CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1766.     CALL WriteLn(CON,LUP||'   Saving temporary tile...')
  1767.     Line4=27
  1768.     SAVE 'T:CAT.'||j RAW
  1769.     if rc=10 then do
  1770.      ADPRO_TO_FRONT
  1771.      okay1 'Error saving file'||NL||,
  1772.            '"T:CAT.'||j||'"'
  1773.      CALL RestoreExit 10
  1774.     end
  1775.     IF TWID<TRUNC((PWI-TWI-1)/TWI) | THEI<TRUNC((PHE-THI-1)/THI) THEN DO
  1776.      LFORMAT 'BACKDROP'
  1777.      IF rc=10 THEN DO
  1778.       ADPRO_TO_FRONT
  1779.       OKAY1 'Error: Loader not found'||NL||,
  1780.             '"Loaders2/BACKDROP"'
  1781.       CALL RestoreExit 10
  1782.      END
  1783.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1784.      CALL WriteLn(CON,LUP||'   Creating tile region...')
  1785.      Line4=26
  1786.      LOAD "X" TRUNC((PWI-TWI-1)/TWI) TRUNC((PHE-THI-1)/THI) ColMode BackCol
  1787.      if rc~=0 then do
  1788.       ADPRO_TO_FRONT
  1789.       okay1 'Error creating tile region'
  1790.       CALL RestoreExit 10
  1791.      end
  1792.      LFORMAT 'IFF'
  1793.      IF rc=10 THEN DO
  1794.       ADPRO_TO_FRONT
  1795.       OKAY1 'Error: Loader not found'||NL||,
  1796.             '"Loaders2/IFF"'
  1797.       CALL RestoreExit 10
  1798.      END
  1799.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1800.      CALL WriteLn(CON,LUP||'   Adding tile...')
  1801.      Line4=17
  1802.      LOAD 'T:CAT.'||j TRUNC(((PWI-TWI-1)/TWI-TWID)/2) TRUNC(((PHE-THI-1)/THI-THEI)/2) 100
  1803.      if rc=10 then do
  1804.       ADPRO_TO_FRONT
  1805.       okay1 'Error loading file'||NL||,
  1806.             '"T:CAT.'||j||'"'
  1807.       CALL RestoreExit 10
  1808.      end
  1809.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1810.      CALL WriteLn(CON,LUP||'   Saving temporary tile...')
  1811.      Line4=27
  1812.      SAVE 'T:CAT.'||j RAW
  1813.      if rc=10 then do
  1814.       ADPRO_TO_FRONT
  1815.       okay1 'Error saving file'||NL||,
  1816.             '"T:CAT.'||j||'"'
  1817.       CALL RestoreExit 10
  1818.      end
  1819.     END
  1820.     IF ThumBord='Yes' THEN DO
  1821.      ThBrdXoff.j=TRUNC((TWID-TIWID)/2)-(BordThick-1)
  1822.      ThBrdYoff.j=ThumbYOff-(BordThick-1)
  1823.      ThBrdDim.j=TIWID+2+2*(BordThick-1)||' '||TIHEI+2+2*(BordThick-1)
  1824.     END
  1825.     if j<cat.i.0 then do
  1826.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1827.      CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1828.      CALL WriteLn(CON,LUP||LUP||LUP)
  1829.     end
  1830.     j=j+1
  1831.    END
  1832.   end
  1833.   IF i<=CatNum THEN DO
  1834.    CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1835.    CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1836.    CALL WriteLn(CON,LUP||'  Creating blank catalog...')
  1837.    Line3=27
  1838.    LFORMAT 'BACKDROP'
  1839.    IF rc=10 THEN DO
  1840.     ADPRO_TO_FRONT
  1841.     OKAY1 'Error: Loader not found'||NL||,
  1842.           '"Loaders2/BACKDROP"'
  1843.     CALL RestoreExit 10
  1844.    END
  1845.    LOAD "X" PWI PHE ColMode BackCol
  1846.    if rc~=0 then do
  1847.     ADPRO_TO_FRONT
  1848.     okay1 'Error creating blank catalog'
  1849.     CALL RestoreExit 10
  1850.    end
  1851.    LST=' '
  1852.    CatXOff=TRUNC((PWI-(TRUNC((PWI-1)/TWI)*TWI+1))/2)
  1853.    CatYOff=TRUNC((PHE-(TRUNC((PHE-1)/THI)*THI+1))/2)
  1854.    DO j=1 to THI-1
  1855.     LST=LST||TWI*j+1||' '
  1856.    END
  1857.    cx=1
  1858.    cy=1
  1859.    CALL WriteLn(CON,LUP||COPIES(' ',Line3))
  1860.    CALL WriteLn(CON,LUP||'  Adding '||cat.i.0||' tile'||catextstring||':')
  1861.    Line3=LENGTH('  Adding '||cat.i.0||' tile'||catextstring||':')
  1862.    do j=1 to cat.i.0
  1863.     if INDEX(LST,' '||j||' ')~=0 then do
  1864.      cy=cy+TRUNC((PHE-THI-1)/THI)+1
  1865.      cx=1
  1866.     end
  1867.     filename='T:CAT.'||j
  1868.     LFORMAT 'IFF'
  1869.     IF rc=10 THEN DO
  1870.      ADPRO_TO_FRONT
  1871.      OKAY1 'Error: Loader not found'||NL||,
  1872.            '"Loaders2/IFF"'
  1873.      CALL RestoreExit 10
  1874.     END
  1875.     CALL WriteLn(CON,'   Adding tile #'||j||'...')
  1876.     Line4=LENGTH('   Adding tile #'||j||'...')
  1877.     LOAD filename cx+CatXOff cy+CatYOff 100
  1878.     if rc=10 then do
  1879.      ADPRO_TO_FRONT
  1880.      okay1 'Error loading file'||NL||,
  1881.            '"'||filename||'"'
  1882.      CALL RestoreExit 10
  1883.     end
  1884.     CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1885.     CALL WriteLn(CON,LUP||'   Deleting temporary tile #'||j||'...')
  1886.     Line4=LENGTH('   Deleting temporary tile #'||j||'...')
  1887.     ADDRESS COMMAND 'C:Delete >NIL: '||filename
  1888.     cx=cx+TRUNC((PWI-TWI-1)/TWI)+1
  1889.     if j<cat.i.0 then do
  1890.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1891.      CALL WriteLn(CON,LUP||LUP)
  1892.     end
  1893.    end
  1894.    IF TileBord='Yes' THEN DO
  1895.     IF TileBordMode='All' THEN DO
  1896.      TotBrds=TWI*THI
  1897.      IF TotBrds=1 THEN BordString=''
  1898.      ELSE BordString='s'
  1899.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1900.      CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1901.      CALL WriteLn(CON,LUP||'  Adding '||TotBrds||' tile border'||BordString||':'||NL)
  1902.      Line3=LENGTH('  Adding '||TotBrds||' tile border'||BordString||':')
  1903.      DO y=1 to THI
  1904.       DO x=1 to TWI
  1905.        CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1906.        CALL WriteLn(CON,LUP||'   Drawing border #'||x+(y-1)*TWI||'...')
  1907.        Line4=LENGTH('   Drawing border #'||x+(y-1)*TWI||'...')
  1908.        OPERATOR "RECTANGLE" TRUNC(((PWI-TWI-1)/TWI-TWID)/2)+(x-1)*(TRUNC((PWI-TWI-1)/TWI)+1)+CatXOff-(BordThick-1) TRUNC(((PHE-THI-1)/THI-THEI)/2)+(y-1)*(TRUNC((PHE-THI-1)/THI)+1)+CatYOff-(BordThick-1),
  1909.                             TWID+2+2*(BordThick-1) THEI+2+2*(BordThick-1) BordThick BordCol
  1910.        IF rc=10 then do
  1911.         ADPRO_TO_FRONT
  1912.         okay1 'Error drawing border'
  1913.         CALL RestoreExit 10
  1914.        END
  1915.       END
  1916.      END
  1917.     END
  1918.     IF TileBordMode='Images' THEN DO
  1919.      TotBrds=cat.i.0
  1920.      IF TotBrds=1 THEN BordString=''
  1921.      ELSE BordString='s'
  1922.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1923.      CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1924.      CALL WriteLn(CON,LUP||'  Adding '||TotBrds||' tile border'||BordString||':'||NL)
  1925.      Line3=LENGTH('  Adding '||TotBrds||' tile border'||BordString||':')
  1926.      DO y=1 to THI
  1927.       DO x=1 to TWI
  1928.        BordNum=x+(y-1)*TWI
  1929.        IF BordNum<=cat.i.0 THEN DO
  1930.         CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1931.         CALL WriteLn(CON,LUP||'   Drawing border #'||BordNum||'...')
  1932.         Line4=LENGTH('   Drawing border #'||BordNum||'...')
  1933.         OPERATOR "RECTANGLE" TRUNC(((PWI-TWI-1)/TWI-TWID)/2)+(x-1)*(TRUNC((PWI-TWI-1)/TWI)+1)+CatXOff-(BordThick-1) TRUNC(((PHE-THI-1)/THI-THEI)/2)+(y-1)*(TRUNC((PHE-THI-1)/THI)+1)+CatYOff-(BordThick-1),
  1934.                              TWID+2+2*(BordThick-1) THEI+2+2*(BordThick-1) BordThick BordCol
  1935.         IF rc=10 then do
  1936.          ADPRO_TO_FRONT
  1937.          okay1 'Error drawing border'
  1938.          CALL RestoreExit 10
  1939.         END
  1940.        END
  1941.       END
  1942.      END
  1943.     END
  1944.    END
  1945.    IF ThumBord='Yes' THEN DO
  1946.     TotBrds=cat.i.0
  1947.     IF TotBrds=1 THEN BordString=''
  1948.     ELSE BordString='s'
  1949.     CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1950.     CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1951.     CALL WriteLn(CON,LUP||'  Adding '||TotBrds||' thumbnail border'||BordString||':'||NL)
  1952.     Line3=LENGTH('  Adding '||TotBrds||' thumbnail border'||BordString||':')
  1953.     DO y=1 to THI
  1954.      DO x=1 to TWI
  1955.       BordNum=x+(y-1)*TWI
  1956.       IF BordNum<=cat.i.0 THEN DO
  1957.        CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1958.        CALL WriteLn(CON,LUP||'   Drawing border #'||BordNum||'...')
  1959.        Line4=LENGTH('   Drawing border #'||BordNum||'...')
  1960.        OPERATOR "RECTANGLE" TRUNC(((PWI-TWI-1)/TWI-TWID)/2)+(x-1)*(TRUNC((PWI-TWI-1)/TWI)+1)+CatXOff+ThBrdXoff.BordNum TRUNC(((PHE-THI-1)/THI-THEI)/2)+(y-1)*(TRUNC((PHE-THI-1)/THI)+1)+CatYOff+ThBrdYoff.BordNum,
  1961.                             ThBrdDim.BordNum BordThick BordCol
  1962.        IF rc=10 then do
  1963.         ADPRO_TO_FRONT
  1964.         okay1 'Error drawing border'
  1965.         CALL RestoreExit 10
  1966.        END
  1967.       END
  1968.      END
  1969.     END
  1970.    END
  1971.    if CatDataType='Image' then do
  1972.     IF ColMode='Gray' & (RType='EHB' | RType='HAM' | RType='HAM8' | (RType='CUST' & (TotCol='EHB' | TotCol='HAM' | TotCol='HAM8'))) THEN DO
  1973.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1974.      CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  1975.      CALL WriteLn(CON,LUP||'  Converting to color...'||NL)
  1976.      Line3=24
  1977.      OPERATOR "GRAY_TO_COLOR"
  1978.      if rc=10 then do
  1979.       ADPRO_TO_FRONT
  1980.       OKAY1 'Error converting'||NL||,
  1981.             'gray to color'
  1982.       CALL RestoreExit 10
  1983.      end
  1984.     END
  1985.     IF Vrsn='NEW' THEN DO
  1986.      LOAD_DEFAULTS 'T:TempADProDefaults'
  1987.      if rc=10 then do
  1988.       ADPRO_TO_FRONT
  1989.       okay1 'Error loading file'||NL||,
  1990.             '"T:TempADProDefaults"'
  1991.       CALL RestoreExit 10
  1992.      end
  1993.     END
  1994.     IF Vrsn='OLD' THEN DO
  1995.      RENDER_TYPE RType
  1996.      SCREEN_TYPE SType
  1997.     END
  1998.     CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  1999.     CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  2000.     CALL WriteLn(CON,LUP||'  Rendering catalog...'||NL)
  2001.     Line3=22
  2002.     EXECUTE
  2003.    end
  2004.    IF UPPER(CatForm)='IFF' & UPPER(WORD(Ops,1))='DCTV' THEN DO
  2005.     IF CatDataType='Image' THEN DO
  2006.      CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  2007.      CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  2008.      CALL WriteLn(CON,LUP||'  Converting to raw image data...'||NL)
  2009.      Line3=33
  2010.      OPERATOR "RENDERED_TO_RAW"
  2011.      if rc=10 then do
  2012.       ADPRO_TO_FRONT
  2013.       okay1 'Error converting'||NL||,
  2014.             'rendered to raw'
  2015.       CALL RestoreExit 10
  2016.      end
  2017.     END
  2018.     ELSE CatDataType='Image'
  2019.     IF WORD(Ops,2)=3 THEN DO
  2020.      RENDER_TYPE 8
  2021.      DCTVPlane=3
  2022.     END
  2023.     ELSE DCTVPlane=4
  2024.     CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  2025.     CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  2026.     CALL WriteLn(CON,LUP||'  Converting to '||DCTVPlane||' bit-plane DCTV data...'||NL)
  2027.     Line3=LENGTH('  Converting to '||DCTVPlane||' bit-plane DCTV data...')
  2028.     OPERATOR "DCTV"
  2029.      if rc=10 then do
  2030.       ADPRO_TO_FRONT
  2031.       okay1 'Error converting'||NL||,
  2032.             'raw to DCTV'
  2033.       CALL RestoreExit 10
  2034.      end
  2035.     Ops=''
  2036.    END
  2037.    SFORMAT CatForm
  2038.    IF rc=10 THEN DO
  2039.     ADPRO_TO_FRONT
  2040.     OKAY1 'Error: Saver not found'||NL||,
  2041.           '"Savers2/'||CatForm||'"'
  2042.     CALL RestoreExit 10
  2043.    END
  2044.    CALL WriteLn(CON,LUP||COPIES(' ',Line4))
  2045.    CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line3))
  2046.    IF CatNum=1 THEN CatalogName=CatFile||CatSuff||'"'
  2047.                ELSE CatalogName=CatFile||RIGHT(i,LENGTH(CatNum),'0')||CatSuff||'"'
  2048.    Act=2
  2049.    DO WHILE Act=2
  2050.     IF EXISTS(SUBSTR(CatalogName,2,LENGTH(CatalogName)-2)) THEN DO
  2051.      IF Vrsn='NEW' THEN DO
  2052.       ADPRO_TO_FRONT
  2053.       OKAYN '"Cataloger 1.97"',
  2054.            "'"CatalogName||" exists."||NL||,
  2055.              "Replace it?'",
  2056.             '"Replace|Specify New Name...|Cancel"'
  2057.      END
  2058.      IF Vrsn='OLD' THEN DO
  2059.       ADPRO_TO_FRONT
  2060.       OKAY2 'The file:'||NL||,
  2061.              CatalogName||NL||,
  2062.             ' exists.'||NL||NL||,
  2063.             'Overwrite it?'
  2064.      END
  2065.      Act=rc
  2066.      IF Vrsn='OLD' THEN ADPRO_TO_BACK
  2067.     END
  2068.     ELSE Act=1
  2069.     zz=LASTPOS('/',CatalogName)
  2070.     if zz=0 THEN zz=POS(':',CatalogName)
  2071.     if zz=0 THEN zz=1
  2072.     IF Act=2 THEN DO
  2073.      ADPRO_TO_FRONT
  2074.      GETFILE '"Select Save File"' '"'||CatDir||'"' '"'||SUBSTR(CatalogName,zz+1,LENGTH(CatalogName)-zz-1)||'"'
  2075.      IF rc=0 THEN DO
  2076.       CatalogName='"'||ADPro_Result||'"'
  2077.       zz=LASTPOS('/',CatalogName)
  2078.       IF zz=0 THEN zz=INDEX(CatalogName,':')
  2079.       IF zz=0 THEN zz=1
  2080.       CatDir=SUBSTR(CatalogName,2,zz-1)
  2081.       IF CatDir~='/' & RIGHT(CatDir,2)~='//' & RIGHT(CatDir,1)='/' THEN CatDir=LEFT(CatDir,LENGTH(CatDir)-1)
  2082.       Act=2
  2083.      END
  2084.      ELSE Act=0
  2085.     END
  2086.     IF Act=1 THEN DO
  2087.      CALL WriteLn(CON,LUP||'  Saving catalog in '||CatForm||' format as "'||SUBSTR(CatalogName,zz+1,LENGTH(CatalogName)-zz-1)||'"...')
  2088.      Line3=LENGTH('  Saving catalog in '||CatForm||' format as "'||SUBSTR(CatalogName,zz+1,LENGTH(CatalogName)-zz-1)||'"...')
  2089.      SAVE CatalogName CatDataType Ops
  2090.      if rc=10 then do
  2091.       ADPRO_TO_FRONT
  2092.       okay1 'Error saving file'||NL||,
  2093.              CatalogName
  2094.       CALL RestoreExit 10
  2095.      end
  2096.     END
  2097.    END
  2098.    i=i+1
  2099.    CALL WriteLn(CON,LUP||COPIES(' ',Line3))
  2100.    CALL WriteLn(CON,LUP||LUP||COPIES(' ',Line2))
  2101.    CALL WriteLn(CON,LUP||LUP)
  2102.   END
  2103.  end
  2104.  CALL WriteLn(CON,' Finished!')
  2105.  IF Vrsn='NEW' THEN ADPRO_TO_FRONT
  2106.  PAUSE 50
  2107.  IF Vrsn='OLD' THEN ADPRO_TO_FRONT
  2108.  CALL CLOSE(CON)
  2109. END
  2110. BREAK_C:
  2111. CALL RestoreExit 0
  2112. RestoreExit:
  2113. PARSE ARG ExitCode
  2114. IF Vrsn='NEW' THEN DO
  2115.  CLEAR_RENDERED
  2116.  CLEAR_RAW
  2117.  LOAD_DEFAULTS 'T:TempADProDefaults'
  2118.  RELEASE_ADPRO
  2119.  ADDRESS COMMAND 'C:Delete >NIL: T:TempADProDefaults'
  2120. END
  2121. IF Vrsn='OLD' THEN DO
  2122.  LFORMAT OldLoader
  2123.  SFORMAT OldSaver
  2124.  OFORMAT OldOperator
  2125.  SCREEN_TYPE SType
  2126.  IMAGE_TYPE
  2127.  IF WORD(ADPro_Result,1)='COLOR' | WORD(ADPro_Result,1)='NONE' | (WORD(ADPro_Result,1)='GRAY' & (RType~='EHB' & RType~='HAM' & RType~='HAM8' & RType~='CUST') | (RType='CUST' & TotCol~='EHB' & TotCol~='HAM' & TotCol~='HAM8')) THEN RENDER_TYPE Rtype
  2128. END
  2129. ADDRESS COMMAND 'C:Delete >NIL: T:CAT.#?'
  2130. EXIT ExitCode
  2131. SYNTAX:
  2132. IF SyntaxID='AddRexxSupport' THEN DO
  2133.  IF POS('ADPro',SHOW('Ports'))=0 THEN SAY "rexxsupport.library not available"
  2134.  ELSE DO
  2135.   ADDRESS "ADPro"
  2136.   ADPRO_TO_FRONT
  2137.   OKAY1 'Error: rexxsupport.library'||NL||,
  2138.         'not available'
  2139.  END
  2140.  EXIT 10
  2141. END
  2142.