home *** CD-ROM | disk | FTP | other *** search
/ Aminet 10 / aminetcdnumber101996.iso / Aminet / gfx / misc / Cataloger.lha / Cataloger next >
Text File  |  1995-11-22  |  67KB  |  2,141 lines

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