;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------

;-----------xref routines
            xref        _AbsExecBase,_LVOOpenLibrary,_LVOCloseLibrary,_LVOOldOpenLibrary
            xref        _LVOOpen,_LVOClose,_LVORead,_LVOWrite,_LVOOutput,_LVOStrToLong
            xref        _LVOAllocAslRequest,_LVOAslRequest,_LVOFreeAslRequest,_LVORequestFile
            xref        _LVOForbid,_LVOPermit,_LVOFindTask,_LVODelay,_LVOWait
            xref        _LVOCacheClearU,_LVOSignal
            xref        _LVOAllocSignal,_LVOFreeSignal,_LVOAllocMem,_LVOFreeMem,_LVOCopyMem
            xref        _LVOAddPart,_LVOPathPart,_LVOFilePart
            xref        _LVOCurrentDir,_LVOGetDiskObject,_LVOFreeDiskObject,_LVOFindToolType
            xref        _LVOCreateDir,_LVOLock,_LVOUnLock,_LVOSetFunction,_LVOSetTaskPri
            xref        _LVOGetMsg,_LVOReplyMsg
            xref        _LVOWaitPort,_LVOAddPort,_LVORemPort,_LVOFindPort
            xref        _LVOLockIBase,_LVOUnlockIBase,_LVOReadArgs,_LVOFreeArgs

            xref        _LVOSystemTagList

            xref        _LVOAlert

;---------------------------------------------------------------------------------------------------

            NOOPTIM

            opt p=68030/68882
            SECTION     REQUESTERJESTER.s,CODE

            include     'inc:dos/dostags.i'
            include     'inc:dos/dos.i'
            include     'inc:dos/dosextens.i'
            include     'inc:exec/alerts.i'
            include     'inc:exec/memory.i'
            include     'inc:exec/ports.i'
            include     'inc:exec/tasks.i'
            include     'inc:intuition/intuitionbase.i'
            include     'inc:intuition/intuition.i'
            include     'inc:libraries/asl.i'
            include     'inc:workbench/startup.i'
            include     'inc:workbench/workbench.i'

;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------

main        move.l      a0,IRJ_RDArgs               ;CS_Buffer if applicable
            move.l      d0,IRJ_RDArgs+4             ;CS_Length
            clr.l       WBreturnMsg
            suba.l      a1,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFindTask(a6)            ;find us
            move.l      d0,IRJ_porttask
            movea.l     d0,a4                       ;need it in a4
            tst.l       pr_CLI(a4)
            beq.s       fromWorkbench
fromCLI     bra.s       end_startup
fromWorkbench lea       pr_MsgPort(a4),a0           ;we were called from the Workbench
            jsr         _LVOWaitPort(a6)            ;wait for a message
            lea         pr_MsgPort(a4),a0
            jsr         _LVOGetMsg(a6)              ;then get it
            move.l      d0,WBreturnMsg              ;save it for later reply
end_startup nop

            bsr         main2                       ;call our program - returns IRJexitcode
            move.l      WBreturnMsg,d0
            beq.s       exitToDOS                   ;if I was a CLI
            movea.l     _AbsExecBase,a6             ;reply to WB startup message
            movea.l     WBreturnMsg,a1
            jsr         _LVOReplyMsg(a6)
exitToDOS   move.l      IRJexitcode,d0              ;exit code
            rts

;---------------------------------------------------
;---------------------------------------------------
;---------------------------------------------------
            include     'IRJ:IRJmain2.s'
;---------------------------------------------------
;---------------------------------------------------
;---------------------------------------------------

;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
ReadArgs    ;in: DOSlib,ASLlib,WBreturnMsg     out: d7.l -1=error,0=no args,else num args
            move.l      WBreturnMsg,d0
            bne         ReadWBargs
;-----------
ReadCLIargs move.l      IRJ_RDArgs+4,d7
            bne.s       RCLI.05
            move.l      #0,d7                       ;no input
            rts
RCLI.05     movea.l     IRJ_RDArgs,a0
            cmpi.b      #$a,(a0)
            bne.s       RCLI.06
            move.l      #0,d7                       ;no input
            rts
RCLI.06     move.l      #IRJ_template,d1
            move.l      #IRJ_optsarray,d2
            move.l      #IRJ_RDArgs,d3
            movea.l     DOSlib,a6
            jsr         _LVOReadArgs(a6)
            tst.l       d0
            bne.s       RCLI.10
            move.l      #-1,d7                      ;error - why?
            rts

RCLI.10     clr.l       d7                          ;copy IRJ_optsarray into another place so i can freeargs
            tst.l       IRJ_optsarray
            beq.s       RCLI.15
            movea.l     IRJ_optsarray,a3
            bsr         SizeOfString
            move.l      #0,d1
            movea.l     _AbsExecBase,a6
            jsr         _LVOAllocMem(a6)
            move.l      d0,IRJconfig
            movea.l     IRJ_optsarray,a3
            bsr         MoveString
            addq        #1,d7
RCLI.15     tst.l       IRJ_optsarray+4
            beq.s       RCLI.20
            movea.l     IRJ_optsarray+4,a3
            bsr         SizeOfString
            move.l      #0,d1
            movea.l     _AbsExecBase,a6
            jsr         _LVOAllocMem(a6)
            move.l      d0,IRJimaginedir
            movea.l     IRJ_optsarray+4,a3
            bsr         MoveString
            addq        #1,d7
RCLI.20     tst.l       IRJ_optsarray+8
            beq.s       RCLI.25
            movea.l     IRJ_optsarray+8,a3
            bsr         SizeOfString
            move.l      #0,d1
            movea.l     _AbsExecBase,a6
            jsr         _LVOAllocMem(a6)
            move.l      d0,IRJimaginename
            movea.l     IRJ_optsarray+8,a3
            bsr         MoveString
            addq        #1,d7
;--
RCLI.25     tst.l       IRJ_optsarray+12
            beq.s       RCLI.30
            movea.l     IRJ_optsarray+12,a3
            move.l      (a3),IRJstacksize
            addq        #1,d7

RCLI.30     tst.l       IRJ_optsarray+16
            beq.s       RCLI.35
            movea.l     IRJ_optsarray+16,a3
            move.l      (a3),IRJpriority
            move.l      #1,IRJpriorityflag
            addq        #1,d7

RCLI.35     tst.l       IRJ_optsarray+20
            beq.s       RCLI.40
            move.l      (a3),IRJquit
            move.l      #1,IRJquitflag
            addq        #1,d7
;--
RCLI.40     move.l      #IRJ_RDArgs,d1
            movea.l     DOSlib,a6
            jsr         _LVOFreeArgs(a6)
            rts
;-----------

ReadWBargs  movea.l     d0,a2
            cmpi.l      #2,sm_NumArgs(a2)
            beq.s       RAWB.05
            move.l      #-1,d7                      ;wrong num WB icons
            rts
RAWB.05     clr.l       d0
            lea         iconname,a1
            jsr         _LVOOpenLibrary(a6)
            move.l      d0,ICONlib

            movea.l     sm_ArgList(a2),a2           ;WBArg
            adda.w      #8,a2
            move.l      wa_Lock(a2),d1
            movea.l     DOSlib,a6
            jsr         _LVOCurrentDir(a6)
            move.l      d0,d5                       ;oldlock - save
            movea.l     wa_Name(a2),a0
            movea.l     ICONlib,a6
            jsr         _LVOGetDiskObject(a6)
            tst.l       d0
            bne.s       RAWB.10
            move.l      #-1,d7                      ;error - couldn't find icon!!  (maybe wanna treat this as 0 args??)
            bra         RAWB.55

RAWB.10     movea.l     d0,a2
            clr.l       d7                          ;counter for # of args from .info
            lea         IRJtoolarray,a5
RAWB.15     movea.l     do_ToolTypes(a2),a0
            movea.l     (a5),a1
            movea.l     ICONlib,a6
            jsr         _LVOFindToolType(a6)
            tst.l       d0
            beq.s       RAWB.20                     ;nomatch
            move.l      d0,d6                       ;alloc & copy it
            movea.l     d0,a3
            bsr         SizeOfString
            move.l      #0,d1
            movea.l     _AbsExecBase,a6
            jsr         _LVOAllocMem(a6)
            move.l      d0,4(a5)
            movea.l     d6,a3
            bsr         MoveString
            addq        #1,d7
RAWB.20     addq        #8,a5
            tst.l       (a5)
            bne.s       RAWB.15

            move.l      IRJimaginestack,d1          ;change string arguments returned by WB-ReadArgs to numeric ones
            beq.s       RAWB.30                     ;no stacksize specified...
            lea         IRJstacksize,a0
            move.l      a0,d2
            movea.l     DOSlib,a6
            jsr         _LVOStrToLong(a6)
            tst.l       d0
            beq.s       RAWB.25                     ;not a valid number
            bpl.s       RAWB.30
RAWB.25     move.l      #10000,IRJstacksize

RAWB.30     move.l      IRJimaginepriority,d1
            beq.s       RAWB.40                     ;no priority specified...
            move.l      #1,IRJpriorityflag
            lea         IRJpriority,a0
            move.l      a0,d2
            movea.l     DOSlib,a6
            jsr         _LVOStrToLong(a6)
            tst.l       d0
            beq.s       RAWB.35                     ;not a valid number
            bpl.s       RAWB.40
RAWB.35     move.l      #0,IRJpriority

RAWB.40     move.l      IRJquit,d1
            beq.s       RAWB.50                     ;quit arg not present
            movea.l     d1,a3
            cmpi.b      #'T',(a3)
            beq.s       RAWB.45
            cmpi.b      #'t',(a3)
            bne.s       RAWB.50
RAWB.45     move.l      #1,IRJquitflag

RAWB.50     movea.l     a2,a0
            movea.l     ICONlib,a6
            jsr         _LVOFreeDiskObject(a6)
RAWB.55     move.l      d5,d1                       ;orig dir
            movea.l     DOSlib,a6
            jsr         _LVOCurrentDir(a6)
            movea.l     ICONlib,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOCloseLibrary(a6)
            rts
;-----------
FreeArgs    movem.l     d0-d2/a0-a1/a3/a6,-(sp)
            move.l      IRJconfig,d2
            beq.s       FA.05
            movea.l     d2,a3
            bsr         SizeOfString
            movea.l     d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.05       move.l      IRJimaginedir,d2
            beq.s       FA.10
            movea.l     d2,a3
            bsr         SizeOfString
            move.l      d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.10       move.l      IRJimaginename,d2
            beq.s       FA.15
            movea.l     d2,a3
            bsr         SizeOfString
            move.l      d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.15       tst.l       WBreturnMsg
            beq.s       FA.30

            move.l      IRJquit,d2                  ;additional WB stuff
            beq.s       FA.20
            movea.l     d2,a3
            bsr         SizeOfString
            move.l      d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.20       move.l      IRJimaginestack,d2
            beq.s       FA.25
            movea.l     d2,a3
            bsr         SizeOfString
            move.l      d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.25       move.l      IRJimaginepriority,d2
            beq.s       FA.30
            movea.l     d2,a3
            bsr         SizeOfString
            move.l      d2,a1
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
FA.30       movem.l     (sp)+,d0-d2/a0-a1/a3/a6
            rts
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
CONFIG_read ;in: a1 - file name d5=DTS DTSconfigflag.l   out: d7.l  ok=0 nofile=1 other=2
            movem.l     d0-d6/a0-a6,-(sp)
            move.l      a1,d1
            move.l      #MODE_OLDFILE,d2
            movea.l     DOSlib,a6
            jsr         _LVOOpen(a6)
            move.l      d0,confighandle
            beq         CR.090                      ;couldn't find it
            move.l      #1024*15,d0                 ;allocate read buffer (15k) - that better be enough
            move.l      #MEMF_CLEAR,d1
            movea.l     _AbsExecBase,a6
            jsr         _LVOAllocMem(a6)
            move.l      d0,configreadbuffer
            beq         CR.085                      ;couldn't alloc mem for configreadbuffer
            move.l      confighandle,d1             ;fill read buffer
            move.l      configreadbuffer,d2
            move.l      #1024*15,d3
            movea.l     DOSlib,a6
            jsr         _LVORead(a6)
            move.l      d0,d7
            beq         CR.080                      ;no data read  :(
            bmi         CR.080                      ;error  :(
;-----------
;parse
            movea.l     d5,a4                       ;DTS
            move.l      #44,d4                      ;number of entries in DTS
CR.005      move.l      (a4),d0
            movea.l     configreadbuffer,a3
            move.l      d7,d6                       ;d6 = # of characters in configreadbuffer
CR.010      movea.l     d0,a2                       ;a2 = label_

CR.015      move.b      (a2)+,d1
            beq.s       CR.025                      ;got match
            subq.l      #1,d6
            beq         CR.070                      ;end of configreadbuffer - hmmm a little short, but just to be safe i checked anyhow.. - no match for this label_   check next in table
            cmp.b       (a3)+,d1
            beq.s       CR.015                      ;it matches so far, keep checking

            cmpi.b      #$a,-1(a3)
            beq.s       CR.010                      ;ok, try again...
CR.020      subq.l      #1,d6
            beq         CR.070                      ;end of configreadbuffer...no match for this configparselabeltable entry..
            cmpi.b      #$a,(a3)+
            bne.s       CR.020
            bra.s       CR.010

;-----------got match, do something
CR.025      cmpi.l      #12,d4
            ble.s       CR.060                      ;**RENDERmethodconfig
;-------------------
;else dir/file/pat config
            move.l      4(a4),a0                    ;free the old _configdefault
            movea.l     a0,a1
            clr.l       d0
CR.030      addq.b      #1,d0
            tst.b       (a0)+
            bne.s       CR.030
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)

CR.035      subq.l      #1,d6
            beq.s       CR.055                      ;matched entry and hit end of buffer :(  handle this by assuming user meant '' for this(last) entry in configreadbuffer
            move.b      (a3)+,d1
            cmpi.b      #' ',d1
            beq.s       CR.035
            suba.l      #1,a3

            movea.l     a3,a1                       ;allocate mem for this and copy it to that memory and put it in _configdefault
            clr.l       d0                          ;get SizeOfString
CR.040      addq.b      #1,d0
            cmpi.b      #$a,(a1)+
            bne.s       CR.040
            move.b      #0,-1(a1)
            move.l      #MEMF_CLEAR,d1
            jsr         _LVOAllocMem(a6)
            move.l      d0,4(a4)                    ;NEW _configdefault
            movea.l     d0,a2
CR.050      move.b      (a3)+,d0                    ;movestring
            move.b      d0,(a2)+
            bne.s       CR.050
            move.b      #$a,-1(a3)
            bra         CR.070

CR.055      move.l      #1,d0                       ;NEW _configdefault (nullstring)
            move.l      #MEMF_CLEAR,d1
            jsr         _LVOAllocMem(a6)
            move.l      d0,4(a4)
            bra         CR.070
;-------------------
;RENDERmethodconfig+
CR.060      subq.l      #1,d6
            beq         CR.070                      ;matched entry and hit end of buffer :(
            move.l      a3,d1

            lea         configvalue,a0
            move.l      a0,d2
            movea.l     DOSlib,a6
            jsr         _LVOStrToLong(a6)
            tst.l       d0
            beq         CR.070                      ;not valid number

            move.l      configvalue,d0
            cmpi.l      #1,d4                       ;IM_RENDERmethod(d4=1)  (AAcs HAM HIRES LACE)
            bne         CR.065
            cmpi.w      #1,d0
            beq.s       CR.0001
            cmpi.w      #10,d0
            beq.s       CR.0010
            cmpi.w      #11,d0
            beq.s       CR.0011
            cmpi.w      #100,d0
            beq.s       CR.0100
            cmpi.w      #101,d0
            beq.s       CR.0101
            cmpi.w      #110,d0
            beq.s       CR.0110
            cmpi.w      #111,d0
            beq.s       CR.0111
            cmpi.w      #1000,d0
            beq.s       CR.1000
            cmpi.w      #1001,d0
            beq.s       CR.1001
            cmpi.w      #1010,d0
            beq.s       CR.1010
            cmpi.w      #1011,d0
            beq.s       CR.1011
            cmpi.w      #1100,d0
            beq.s       CR.1100
            cmpi.w      #1101,d0
            beq.s       CR.1101
            cmpi.w      #1110,d0
            beq.s       CR.1110
            cmpi.w      #1111,d0
            beq.s       CR.1111
            bra.s       CR.070                      ;unknown
CR.0001     move.w      #$4,d0
            bra.s       CR.065
CR.0010     move.w      #$8000,d0
            bra.s       CR.065
CR.0011     move.w      #$8004,d0
            bra.s       CR.065
CR.0100     move.w      #$800,d0
            bra.s       CR.065
CR.0101     move.w      #$804,d0
            bra.s       CR.065
CR.0110     move.w      #$8800,d0
            bra.s       CR.065
CR.0111     move.w      #$8804,d0
            bra.s       CR.065
CR.1000     move.l      #$8000000,d0
            bra.s       CR.065
CR.1001     move.l      #$8000004,d0
            bra.s       CR.065
CR.1010     move.l      #$8008000,d0
            bra.s       CR.065
CR.1011     move.l      #$8008004,d0
            bra.s       CR.065
CR.1100     move.l      #$8000800,d0
            bra.s       CR.065
CR.1101     move.l      #$8000804,d0
            bra.s       CR.065
CR.1110     move.l      #$8008800,d0
            bra.s       CR.065
CR.1111     move.l      #$8008804,d0
CR.065      move.l      d0,4(a4)
;----
CR.070      tst.l       DTSconfigflag
            beq.s       CR.075
            move.l      DTSconfigflag,8(a4)
CR.075      adda.w      #12,a4                      ;skip to next
            subq.l      #1,d4
            bne         CR.005
            move.l      #0,d7
            bra.s       CR.095
CR.080      move.l      #1,d7
            bra.s       CR.095
CR.085      move.l      #1,d7
            bra.s       CR.100
CR.090      move.l      #1,d7
            bra.s       CR.105

CR.095      movea.l     configreadbuffer,a1         ;DONE, free buffer.
            move.l      #1024*15,d0
            movea.l     _AbsExecBase,a6
            jsr         _LVOFreeMem(a6)
CR.100      move.l      confighandle,d1
            movea.l     DOSlib,a6
            jsr         _LVOClose(a6)
CR.105      movem.l     (sp)+,d0-d6/a0-a6
            rts
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
CREATEDIRS
            movem.l     d0-d6/a0-a6,-(sp)
            movea.l     DOSlib,a6
            move.l      IRJ_OBJECTdir,d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.05
            jsr         _LVOUnLock(a6)
CD.05       move.l      IRJ_DXFdir,d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.10
            jsr         _LVOUnLock(a6)
CD.10       move.l      IRJ_FORMdir,d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.15
            jsr         _LVOUnLock(a6)
CD.15       move.l      IRJ_CYCLEdir,d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.20
            jsr         _LVOUnLock(a6)
CD.20       move.l      IRJ_SPLINEdir,d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.25
            jsr         _LVOUnLock(a6)
CD.25       move.w      IM_BRUSHMAPSdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.30
            jsr         _LVOUnLock(a6)
CD.30       move.w      IM_ATTRIBSdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.35
            jsr         _LVOUnLock(a6)
CD.35       move.w      IM_TEXTURESdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.40
            jsr         _LVOUnLock(a6)
CD.40       move.w      IM_EFFECTSdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.45
            jsr         _LVOUnLock(a6)
CD.45       move.w      IM_PARTICALSdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.50
            jsr         _LVOUnLock(a6)
CD.50       move.w      IM_REXXdir,d1
            move.l      (a4,d1.w),d1
            jsr         _LVOCreateDir(a6)
            move.l      d0,d1
            beq.s       CD.55
            jsr         _LVOUnLock(a6)
CD.55       movem.l     (sp)+,d0-d6/a0-a6
            move.l      #1,d7
            rts
;---------------------------------------------------------------------------------------------------
INITdirs    movea.l     IRJ_OBJECTdir_configdefault,a1
            movea.l     IRJ_OBJECTdir,a0
            bsr         EXPANDconfigdefault
            movea.l     IRJ_OBJECTfile,a2
            move.b      #0,(a2)
            move.l      #0,IRJ_OBJECTdir_configdefault+4

            movea.l     IRJ_DXFdir_configdefault,a1
            movea.l     IRJ_DXFdir,a0
            bsr         EXPANDconfigdefault
            movea.l     IRJ_DXFfile,a2
            move.b      #0,(a2)
            move.l      #0,IRJ_DXFdir_configdefault+4

            movea.l     IRJ_FORMdir_configdefault,a1
            movea.l     IRJ_FORMdir,a0
            bsr         EXPANDconfigdefault
            movea.l     IRJ_FORMfile,a2
            move.b      #0,(a2)
            move.l      #0,IRJ_FORMdir_configdefault+4

            movea.l     IRJ_CYCLEdir_configdefault,a1
            movea.l     IRJ_CYCLEdir,a0
            bsr         EXPANDconfigdefault
            movea.l     IRJ_CYCLEfile,a2
            move.b      #0,(a2)
            move.l      #0,IRJ_CYCLEdir_configdefault+4

            movea.l     IRJ_SPLINEdir_configdefault,a1
            movea.l     IRJ_SPLINEdir,a0
            bsr         EXPANDconfigdefault
            movea.l     IRJ_SPLINEfile,a2
            move.b      #0,(a2)
            move.l      #0,IRJ_SPLINEdir_configdefault+4

            movea.l     IRJ_BRUSHMAPSdir_configdefault,a1
            move.w      IM_BRUSHMAPSdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_BRUSHMAPSfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_BRUSHMAPSdir_configdefault+4

            movea.l     IRJ_ATTRIBSdir_configdefault,a1
            move.w      IM_ATTRIBSdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_ATTRIBSfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_ATTRIBSdir_configdefault+4

            movea.l     IRJ_TEXTURESdir_configdefault,a1
            move.w      IM_TEXTURESdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_TEXTURESfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_TEXTURESdir_configdefault+4

            movea.l     IRJ_EFFECTSdir_configdefault,a1
            move.w      IM_EFFECTSdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_EFFECTSfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_EFFECTSdir_configdefault+4

            movea.l     IRJ_PARTICALSdir_configdefault,a1
            move.w      IM_PARTICALSdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_PARTICALSfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_PARTICALSdir_configdefault+4

            movea.l     IRJ_REXXdir_configdefault,a1
            move.w      IM_REXXdir,d0
            movea.l     (a4,d0.w),a0
            bsr         EXPANDconfigdefault
            move.w      IM_REXXfile,d0
            movea.l     (a4,d0.w),a2
            move.b      #0,(a2)
            move.l      #0,IRJ_REXXdir_configdefault+4
            rts
;---------------------------------------------------------------------------------------------------
EXPANDconfigdefault
            move.b      (a1)+,d0
            move.b      d0,(a0)+
            beq         ECD.35         ;done - configdefault = '',0
            cmpi.b      #'@',d0
            beq.s       ECD.10         ;1st char is a @, substitute PROJECT dir (output)
ECD.05      move.b      (a1)+,d0
            cmpi.b      #'@',d0
            beq.s       ECD.20         ;substitute PROJECT filename
            move.b      d0,(a0)+
            bne.s       ECD.05
            bra.s       ECD.35         ;done

ECD.10      suba.w      #1,a0
            move.w      IM_PROJECToutput,d0
            movea.l     (a4,d0.w),a3             ;output
            tst.b       (a3)
            beq.s       ECD.18
ECD.15      move.b      (a3)+,(a0)+              ;@/... or just @
            bne.s       ECD.15
            cmpi.l      #'.imp',-5(a0)           ;make sure it didn't already end with .imp
            beq.s       ECD.17
            move.l      #'.imp',-1(a0)
            adda.w      #3,a0
            bra.s       ECD.30
ECD.17      suba.w      #1,a0
            bra.s       ECD.30
ECD.18      cmpi.b      #'/',(a1)                ;no project name, just put in the rest instead
            bne.s       ECD.30
            adda.w      #1,a1
            bra.s       ECD.30

ECD.20      move.w      IM_PROJECTfile,d0
            movea.l     (a4,d0.w),a3             ;file
            tst.b       (a3)
            bne.s       ECD.25
            cmpi.b      #'/',-2(a1)
            beq.s       ECD.22
            cmpi.b      #':',-2(a1)
            bne.s       ECD.25
ECD.22      move.b      #0,(a0)
            bra.s       ECD.35

ECD.25      move.b      (a3)+,(a0)+
            bne.s       ECD.25
            subq.l      #1,a0

ECD.30      move.b      (a1)+,(a0)+
            bne.s       ECD.30
ECD.35      rts
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;in:      d4=output,d5=pat,d6=dir,d7=file,a6=ASLlib
;out:     d0.l=0,error
;scratch: d1/d2/d3/a0/a1/a2
GetDirFile
            tst.l       IRJ_REQwidth_configdefault+4    ;configflag
            beq.s       GDF.01
            move.l      IRJ_REQwidth_configdefault,IRJaslfr_width
            move.l      #0,IRJ_REQwidth_configdefault+4
GDF.01      tst.l       IRJ_REQheight_configdefault+4   ;configflag
            beq.s       GDF.02
            move.l      IRJ_REQheight_configdefault,IRJaslfr_height
            move.l      #0,IRJ_REQheight_configdefault+4
GDF.02      tst.l       IRJ_REQleftedge_configdefault+4 ;configflag
            beq.s       GDF.03
            move.l      IRJ_REQleftedge_configdefault,IRJaslfr_leftedge
            move.l      #0,IRJ_REQleftedge_configdefault+4
GDF.03      tst.l       IRJ_REQtopedge_configdefault+4  ;configflag
            beq.s       GDF.04
            move.l      IRJ_REQtopedge_configdefault,IRJaslfr_topedge
            move.l      #0,IRJ_REQtopedge_configdefault+4

GDF.04      move.l      d7,IRJaslfr_initfile
            move.l      d6,IRJaslfr_initdir
            move.l      d5,IRJaslfr_pattern

            move.l      #ASL_FileRequest,d0
            lea         IRJ_aslfrtagstruct,a0
            jsr         _LVOAllocAslRequest(a6)
            move.l      d0,IRJ_requeststruct
            beq         GDF_ERROR                   ;error, where's my requester?

            movea.l     IRJ_requeststruct,a0
            jsr         _LVORequestFile(a6)
            tst.l       d0
            beq         GDF_CANCEL                  ;cancelled by user
            movea.l     IRJ_requeststruct,a0
            movea.l     rf_File(a0),a1
            tst.b       (a1)
            beq         GDF_CANCEL                  ;didn't enter a file - same as cancelled by user

            movea.l     rf_Dir(a0),a0               ;OK, gotta user input. move to
            movea.l     d4,a2                       ;_output
            move.b      #99,d3
GDF.05      move.b      (a0)+,(a2)+
            beq.s       GDF.10
            subq.b      #1,d3
            bne.s       GDF.05
            move.b      #0,(a2)
GDF.10      move.l      d4,d1                       ;_output
            move.l      a1,d2                       ;rf_file()
            move.l      #100,d3
            movea.l     DOSlib,a6
            jsr         _LVOAddPart(a6)
            movea.l     ASLlib,a6
            move.l      d0,d3
            movea.l     IRJ_requeststruct,a0
            jsr         _LVOFreeAslRequest(a6)
            move.l      d3,d0
            rts
GDF_CANCEL  movea.l     IRJ_requeststruct,a0
            jsr         _LVOFreeAslRequest(a6)
GDF_ERROR   moveq       #0,d0
            rts
;---------------------------------------------------------------------------------------------------
;in:      d4=output,d6=dir,d7=file,a6=ASLlib
;out:     a6=DOSlib
;scratch: d1/d2/d3/a0/a1
SplitDirFile
            move.l      d4,d1                       ;_output
            movea.l     DOSlib,a6
            jsr         _LVOFilePart(a6)
            movea.l     d0,a0
            movea.l     d7,a1
SDF.05      move.b      (a0)+,(a1)+
            bne.s       SDF.05

            move.l      d4,d1                       ;_output
            movea.l     d6,a1
            sub.l       d1,d0
            beq.s       SDF.15  ;same - only a file part - no path part.  - make initdir = ''
            movea.l     d4,a0
SDF.10      move.b      (a0)+,(a1)+
            subq.w      #1,d0
            bne.s       SDF.10
SDF.15      move.b      #0,(a1)
            rts
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
                                    cnop 0,4
DOSlib                              dc.l 0
ASLlib                              dc.l 0
Intuilib                            dc.l 0
ICONlib                             dc.l 0
WBreturnMsg                         dc.l 0    ;* startup code variable
configreadbuffer                    dc.l 0
configvalue                         dc.l 0
VERSION                             dc.b '$VER: ImagineRequesterJester v5.0 by Kirk Piepho 8.11.96',$a,0
dosname                             dc.b 'dos.library',0
aslname                             dc.b 'asl.library',0
intuitionname                       dc.b 'intuition.library',0
iconname                            dc.b 'icon.library',0
configname1                         dc.b 'IRJ.cfg',0
configname2                         dc.b 's:ImagineRequesterJester.cfg',0
IRJ_template                        dc.b 'CONFIG/K,ID=IMAGINEDIR/K,IN=IMAGINENAME/K,IS=IMAGINESTACK/N,IP=IMAGINEPRIORITY/N,QUIT/S',0
IRJconfiglabel                      dc.b 'CONFIG',0
IRJimaginedirlabel                  dc.b 'IMAGINEDIR',0
IRJimaginenamelabel                 dc.b 'IMAGINENAME',0
IRJimaginestacklabel                dc.b 'IMAGINESTACK',0
IRJimagineprioritylabel             dc.b 'IMAGINEPRIORITY',0
IRJquitlabel                        dc.b 'QUIT',0
IRJruncommandstring                 dc.b 'run ',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
nullstring                          dc.b '',0
specsname                           dc.b 'specs',0
stagingname                         dc.b 'staging',0
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
                                    cnop 0,4
IRJdata
IRJ_base                            dc.l 0
IRJ_Signal                          dc.l 0
IRJ_DTS                             dc.l DIRECTORYTABLESTRUCT
IRJ_ImagineCodeBase                 dc.l 0
IRJ_ImagineA4Base                   dc.l 0
IRJ_ImagineTask                     dc.l 0
IRJ_ImagineCodeEnd                  dc.l 0
IRJ_ImaginePPTHhunk                 dc.l 0
IRJ_ImagineVersion                  dc.l 0
IRJ_filereq                         dc.l 0
IRJexitcode                         dc.l 0
IRJ_requeststruct                   dc.l 0
confighandle                        dc.l 0
DTSconfigflag                       dc.l 0

IRJtemp_1                           dc.l 0
IRJtemp_2                           dc.l 0
IRJtemp_3                           dc.l 0
IRJtemp_4                           dc.l 0
IRJtemp_5                           dc.l 0
IRJtemp_6                           dc.l 0
IRJtemp_7                           dc.l 0
IRJtemp_8                           dc.l 0
IRJtemp_9                           dc.l 0
IRJtemp_10                          dc.l 0

IRJtemp_11                          dc.l 0

IRJ_OBJECTdir                       dc.l 0
IRJ_DXFdir                          dc.l 0
IRJ_FORMdir                         dc.l 0
IRJ_CYCLEdir                        dc.l 0
IRJ_SPLINEdir                       dc.l 0
IRJ_OBJECTfile                      dc.l 0
IRJ_DXFfile                         dc.l 0
IRJ_FORMfile                        dc.l 0
IRJ_CYCLEfile                       dc.l 0
IRJ_SPLINEfile                      dc.l 0
IRJ_PIXdir                          dc.l 0
IRJ_ANIMdir                         dc.l 0
IRJ_tempdir                         dc.l 0
IRJ_tempfilespace                   dc.l 0,0,0,0,0,0,0,0,0

IRJ_RDArgs                          dc.l 0,0,0,0,0,0,0,0
IRJ_optsarray                       dc.l 0,0,0,0,0,0
IRJtoolarray                        dc.l IRJconfiglabel
IRJconfig                           dc.l 0
                                    dc.l IRJimaginedirlabel
IRJimaginedir                       dc.l 0
                                    dc.l IRJimaginenamelabel
IRJimaginename                      dc.l 0
                                    dc.l IRJimaginestacklabel
IRJimaginestack                     dc.l 0
                                    dc.l IRJimagineprioritylabel
IRJimaginepriority                  dc.l 0
                                    dc.l IRJquitlabel
IRJquit                             dc.l 0
                                    dc.l 0,0
IRJpriorityflag                     dc.l 0
IRJquitflag                         dc.l 0

ImagineTags                         dc.l NP_StackSize
IRJstacksize                        dc.l 10000
                                    dc.l NP_Priority
IRJpriority                         dc.l 0
                                    dc.l 0,0
templock1                           dc.l 0                  ;new dir lock
templock2                           dc.l 0                  ;orig dir lock

                                    cnop 0,4
IRJ_Port                            dc.l 0                  ;LN_SUCC
                                    dc.l 0                  ;LN_PRED
                                    dc.b NT_MSGPORT         ;LN_TYPE (4) - nodes.i
                                    dc.b 1                  ;LN_PRI
                                    dc.l portname
                                    dc.b PA_IGNORE          ;MP_FLAGS (2) - ports.i
IRJ_portsignal                      dc.b 0                  ;MP_SIGBIT
IRJ_porttask                        dc.l 0                  ;MP_SIGTASK
                                    dc.l 0                  ;LH_HEAD
                                    dc.l 0                  ;LH_TAIL
                                    dc.l 0                  ;LH_TAILPRED
                                    dc.b 0                  ;LH_TYPE
                                    dc.b 0                  ;LH_pad
portname                            dc.b 'IRJ-port',0
                                    cnop 0,4

IRJ_aslfrtagstruct
IRJaslfrtagstruct                   dc.l ASL_Hail
IRJaslfr_title                      dc.l 0
                                    dc.l ASL_Window
IRJaslfr_imaginewindow              dc.l 0
                                    dc.l ASL_LeftEdge
IRJaslfr_leftedge                   dc.l 156
                                    dc.l ASL_TopEdge
IRJaslfr_topedge                    dc.l 86
                                    dc.l ASL_Width
IRJaslfr_width                      dc.l 328
                                    dc.l ASL_Height
IRJaslfr_height                     dc.l 222                ;362
                                    dc.l ASL_Dir
IRJaslfr_initdir                    dc.l 0
                                    dc.l ASL_File
IRJaslfr_initfile                   dc.l 0
                                    dc.l ASL_Pattern
IRJaslfr_pattern                    dc.l 0
                                    dc.l ASL_FuncFlags,FILF_PATGAD,TAG_DONE
;---------------------------------------------------------------------------------------------------
; IRJ_ImagineA4Base offsets - to be filled in after I figure out which Imagine is running
IM_PROJECTdir                       dc.w 0
IM_PROJECTfile                      dc.w 4
IM_PROJECToutput                    dc.w 8
IM_OBJECTdir                        dc.w 0
IM_OBJECTfile                       dc.w 4
IM_OBJECToutput                     dc.w 8
IM_CONVERTIFFdir                    dc.w 0
IM_CONVERTIFFfile                   dc.w 4
IM_CONVERTIFFoutput                 dc.w 8
IM_BRUSHMAPSdir                     dc.w 0
IM_BRUSHMAPSfile                    dc.w 4
IM_BRUSHMAPSoutput                  dc.w 8
IM_TEXTURESdir                      dc.w 0
IM_TEXTURESfile                     dc.w 4
IM_TEXTURESoutput                   dc.w 8
IM_EFFECTSdir                       dc.w 0
IM_EFFECTSfile                      dc.w 4
IM_EFFECTSoutput                    dc.w 8
IM_SUBPROJECTdir                    dc.w 0
IM_SUBPROJECTfile                   dc.w 4
IM_SUBPROJECToutput                 dc.w 8
IM_PREFSdir                         dc.w 0
IM_PREFSfile                        dc.w 4
IM_PREFSoutput                      dc.w 8
IM_ATTRIBSdir                       dc.w 0
IM_ATTRIBSfile                      dc.w 4
IM_ATTRIBSoutput                    dc.w 8
IM_PARTICALSdir                     dc.w 0
IM_PARTICALSfile                    dc.w 4
IM_PARTICALSoutput                  dc.w 8
IM_PALETTEdir                       dc.w 0
IM_PALETTEfile                      dc.w 4
IM_PALETTEoutput                    dc.w 8
IM_BROWSEdir                        dc.w 0
IM_BROWSEfile                       dc.w 4
IM_BROWSEoutput                     dc.w 8
IM_REXXdir                          dc.w 0
IM_REXXfile                         dc.w 4
IM_REXXoutput                       dc.w 8

IM_RENDER40                         dc.w 0
IM_RENDER                           dc.w 1
IM_FILEformat                       dc.w 2
IM_WIDTH                            dc.w 4
IM_HEIGHT                           dc.w 6
IM_XASPECT                          dc.w 8
IM_YASPECT                          dc.w 10
IM_VIEWmode                         dc.w 12
IM_SUBPROJECTpixdir                 dc.w 16
IM_SUBPROJECTanimdir                dc.w 144
IM_WINDOW                           dc.w 0
;---------------------------------------------------------------------------------------------------
                                    cnop 0,4
DIRECTORYTABLESTRUCT:
                                    dc.l PROJECTdirconfiglabel
IRJ_PROJECTdir_configdefault        dc.l 0,0
                                    dc.l PROJECTfileconfiglabel
IRJ_PROJECTfile_configdefault       dc.l 0,1
                                    dc.l SUBPROJECTfileconfiglabel
IRJ_SUBPROJECTfile_configdefault    dc.l 0,1
                                    dc.l PIXdirconfiglabel
IRJ_PIXdir_configdefault            dc.l 0,0
                                    dc.l ANIMdirconfiglabel
IRJ_ANIMdir_configdefault           dc.l 0,0
                                    dc.l PREFSfileconfiglabel
IRJ_PREFSfile_configdefault         dc.l 0,0
                                    dc.l OBJECTdirconfiglabel
IRJ_OBJECTdir_configdefault         dc.l 0,0
                                    dc.l DXFdirconfiglabel
IRJ_DXFdir_configdefault            dc.l 0,0
                                    dc.l FORMdirconfiglabel
IRJ_FORMdir_configdefault           dc.l 0,0
                                    dc.l CYCLEdirconfiglabel
IRJ_CYCLEdir_configdefault          dc.l 0,0
                                    dc.l SPLINEdirconfiglabel
IRJ_SPLINEdir_configdefault         dc.l 0,0
                                    dc.l BRUSHMAPSdirconfiglabel
IRJ_BRUSHMAPSdir_configdefault      dc.l 0,0
                                    dc.l ATTRIBSdirconfiglabel
IRJ_ATTRIBSdir_configdefault        dc.l 0,0
                                    dc.l TEXTURESdirconfiglabel
IRJ_TEXTURESdir_configdefault       dc.l 0,0
                                    dc.l EFFECTSdirconfiglabel
IRJ_EFFECTSdir_configdefault        dc.l 0,0
                                    dc.l PARTICALSdirconfiglabel
IRJ_PARTICALSdir_configdefault      dc.l 0,0
                                    dc.l REXXdirconfiglabel
IRJ_REXXdir_configdefault           dc.l 0,0

                                    dc.l PROJECTpatconfiglabel
IRJ_PROJECTpat_configdefault        dc.l 0,0
                                    dc.l NEWSUBPROJECTpatconfiglabel
IRJ_NEWSUBPROJECTpat_configdefault  dc.l 0,0
                                    dc.l OPENSUBPROJECTpatconfiglabel
IRJ_OPENSUBPROJECTpat_configdefault dc.l 0,0
                                    dc.l PREFSpatconfiglabel
IRJ_PREFSpat_configdefault          dc.l 0,0
                                    dc.l OBJECTpatconfiglabel
IRJ_OBJECTpat_configdefault         dc.l 0,0
                                    dc.l DXFpatconfiglabel
IRJ_DXFpat_configdefault            dc.l 0,0
                                    dc.l FORMpatconfiglabel
IRJ_FORMpat_configdefault           dc.l 0,0
                                    dc.l CYCLEpatconfiglabel
IRJ_CYCLEpat_configdefault          dc.l 0,0
                                    dc.l SPLINEpatconfiglabel
IRJ_SPLINEpat_configdefault         dc.l 0,0
                                    dc.l BRUSHMAPSpatconfiglabel
IRJ_BRUSHMAPSpat_configdefault      dc.l 0,0
                                    dc.l ATTRIBSpatconfiglabel
IRJ_ATTRIBSpat_configdefault        dc.l 0,0
                                    dc.l TEXTURESpatconfiglabel
IRJ_TEXTURESpat_configdefault       dc.l 0,0
                                    dc.l EFFECTSpatconfiglabel
IRJ_EFFECTSpat_configdefault        dc.l 0,0
                                    dc.l PARTICALSpatconfiglabel
IRJ_PARTICALSpat_configdefault      dc.l 0,0
                                    dc.l REXXpatconfiglabel
IRJ_REXXpat_configdefault           dc.l 0,0

                                    dc.l REQwidthconfiglabel        ;configlabel,IRJ_REQwidth,1
IRJ_REQwidth_configdefault          dc.l REQwidthconfigdefault,1
                                    dc.l REQheightconfiglabel       ;configlabel,IRJ_REQheight,1
IRJ_REQheight_configdefault         dc.l REQheightconfigdefault,1
                                    dc.l REQleftedgeconfiglabel     ;configlabel,IRJ_REQleftedge,1
IRJ_REQleftedge_configdefault       dc.l REQleftedgeconfigdefault,1
                                    dc.l REQtopedgeconfiglabel      ;configlabel,IRJ_REQtopedge,1
IRJ_REQtopedge_configdefault        dc.l REQtopedgeconfigdefault,1
                                    dc.l RENDER40configlabel        ;configlabel,IRJ_RENDER40,1
IRJ_RENDER40_configdefault          dc.l RENDER40configdefault,1
                                    dc.l RENDERconfiglabel          ;configlabel,IRJ_RENDER,1
IRJ_RENDER_configdefault            dc.l RENDERconfigdefault,1
                                    dc.l WIDTHconfiglabel           ;configlabel,IRJ_WIDTH,1
IRJ_WIDTH_configdefault             dc.l WIDTHconfigdefault,1
                                    dc.l HEIGHTconfiglabel          ;configlabel,IRJ_HEIGHT,1
IRJ_HEIGHT_configdefault            dc.l HEIGHTconfigdefault,1
                                    dc.l XASPECTconfiglabel         ;configlabel,IRJ_XASPECT,1
IRJ_XASPECT_configdefault           dc.l XASPECTconfigdefault,1
                                    dc.l YASPECTconfiglabel         ;configlabel,IRJ_YASPECT,1
IRJ_YASPECT_configdefault           dc.l YASPECTconfigdefault,1
                                    dc.l FILEformatconfiglabel      ;configlabel,IRJ_FILEformat,1
IRJ_FILEformat_configdefault        dc.l FILEformatconfigdefault,1
                                    dc.l VIEWmodeconfiglabel        ;configlabel,IRJ_VIEWmode,1
IRJ_VIEWmode_configdefault          dc.l VIEWmodeconfigdefault,1

PREFSfileconfiglabel                dc.b 'PREFSfile',0       ; '',0             'Imagine.config',0
PROJECTdirconfiglabel               dc.b 'PROJECTdir',0      ; '',0             'PROJECTS',0
PROJECTfileconfiglabel              dc.b 'PROJECTfile',0     ; '',0
SUBPROJECTfileconfiglabel           dc.b 'SUBPROJECTfile',0  ; '',0
PIXdirconfiglabel                   dc.b 'PIXdir',0          ; '',0             'RAM:',0
ANIMdirconfiglabel                  dc.b 'ANIMdir',0         ; '',0             'RAM:',0
OBJECTdirconfiglabel                dc.b 'OBJECTdir',0       ; '@/objects',0
DXFdirconfiglabel                   dc.b 'DXFdir',0          ; '@/objects',0
FORMdirconfiglabel                  dc.b 'FORMdir',0         ; '@/objects',0    'forms/@',0
CYCLEdirconfiglabel                 dc.b 'CYCLEdir',0        ; '@/objects',0
SPLINEdirconfiglabel                dc.b 'SPLINEdir',0       ; '@/objects',0    'splinepaths',0
BRUSHMAPSdirconfiglabel             dc.b 'BRUSHMAPSdir',0    ; '',0             'brushmaps/@',0
ATTRIBSdirconfiglabel               dc.b 'ATTRIBSdir',0      ; '@/objects',0    'attribs/@',0
TEXTURESdirconfiglabel              dc.b 'TEXTURESdir',0     ; '',0             'textures',0
EFFECTSdirconfiglabel               dc.b 'EFFECTSdir',0      ; '',0             'effects',0
PARTICALSdirconfiglabel             dc.b 'PARTICALSdir',0    ; '@/objects',0
REXXdirconfiglabel                  dc.b 'REXXdir',0         ; 'rexx:imagine',0

PREFSpatconfiglabel                 dc.b 'PREFSpat',0        ; '#?.config|#?.cfg',0
PROJECTpatconfiglabel               dc.b 'PROJECTpat',0      ; '~(#?.info)',0
NEWSUBPROJECTpatconfiglabel         dc.b 'SUBPROJECTpat1',0  ; '#?.pix',0
OPENSUBPROJECTpatconfiglabel        dc.b 'SUBPROJECTpat2',0  ; '#?specs',0
OBJECTpatconfiglabel                dc.b 'OBJECTpat',0       ; '~(#?.info)',0
DXFpatconfiglabel                   dc.b 'DXFpat',0          ; '~(#?.info)',0
FORMpatconfiglabel                  dc.b 'FORMpat',0         ; '~(#?.info)',0
CYCLEpatconfiglabel                 dc.b 'CYCLEpat',0        ; '~(#?.info)',0
SPLINEpatconfiglabel                dc.b 'SPLINEpat',0       ; '~(#?.info)',0
BRUSHMAPSpatconfiglabel             dc.b 'BRUSHMAPSpat',0    ; '~(#?.info)',0
ATTRIBSpatconfiglabel               dc.b 'ATTRIBSpat',0      ; '~(#?.info)',0
TEXTURESpatconfiglabel              dc.b 'TEXTURESpat',0     ; '#?.itx',0
EFFECTSpatconfiglabel               dc.b 'EFFECTSpat',0      ; '#?.ifx',0
PARTICALSpatconfiglabel             dc.b 'PARTICALSpat',0    ; '~(#?.info)',0
REXXpatconfiglabel                  dc.b 'REXXpat',0         ; '#?.irx',0

REQwidthconfiglabel                 dc.b 'REQwidth',0        ; 328
REQheightconfiglabel                dc.b 'REQheight',0       ; 222
REQleftedgeconfiglabel              dc.b 'REQleftedge',0     ; 156
REQtopedgeconfiglabel               dc.b 'REQtopedge',0      ; 86
RENDER40configlabel                 dc.b 'RENDER40',0        ; 0
RENDERconfiglabel                   dc.b 'RENDERmethod',0    ; 4
WIDTHconfiglabel                    dc.b 'WIDTH',0           ; 752
HEIGHTconfiglabel                   dc.b 'HEIGHT',0          ; 480
XASPECTconfiglabel                  dc.b 'XASPECT',0         ; 6
YASPECTconfiglabel                  dc.b 'YASPECT',0         ; 7
FILEformatconfiglabel               dc.b 'FILEformat',0      ; 3
VIEWmodeconfiglabel                 dc.b 'VIEWmode',0        ; 8004
;---------------------------------------------------------------------------------------------------
;-----------INITIAL-defaults--->--------------------------------------------------------------------
PREFSfileconfigdefault              dc.b '',0
PROJECTdirconfigdefault             dc.b '',0
PROJECTfileconfigdefault            dc.b '',0
PIXdirconfigdefault                 dc.b '',0
ANIMdirconfigdefault                dc.b '',0
SUBPROJECTfileconfigdefault         dc.b '',0
OBJECTdirconfigdefault              dc.b '@/objects',0
DXFdirconfigdefault                 dc.b '@/objects',0
FORMdirconfigdefault                dc.b '@/objects',0
CYCLEdirconfigdefault               dc.b '@/objects',0
SPLINEdirconfigdefault              dc.b '@/objects',0
BRUSHMAPSdirconfigdefault           dc.b '',0
ATTRIBSdirconfigdefault             dc.b '@/objects',0
TEXTURESdirconfigdefault            dc.b '',0
EFFECTSdirconfigdefault             dc.b '',0
PARTICALSdirconfigdefault           dc.b '@/objects',0
REXXdirconfigdefault                dc.b 'rexx:imagine',0
PROJECTpatconfigdefault             dc.b '~(#?.info)',0
NEWSUBPROJECTpatconfigdefault       dc.b '#?.pix',0
OPENSUBPROJECTpatconfigdefault      dc.b '#?specs',0
PREFSpatconfigdefault               dc.b '#?.config',0
OBJECTpatconfigdefault              dc.b '~(#?.info)',0
DXFpatconfigdefault                 dc.b '~(#?.info)',0
FORMpatconfigdefault                dc.b '~(#?.info)',0
CYCLEpatconfigdefault               dc.b '~(#?.info)',0
SPLINEpatconfigdefault              dc.b '~(#?.info)',0
BRUSHMAPSpatconfigdefault           dc.b '~(#?.info)',0
ATTRIBSpatconfigdefault             dc.b '~(#?.info)',0
TEXTURESpatconfigdefault            dc.b '#?.itx',0
EFFECTSpatconfigdefault             dc.b '#?.ifx',0
PARTICALSpatconfigdefault           dc.b '~(#?.info)',0
REXXpatconfigdefault                dc.b '#?.irx',0
REQwidthconfigdefault               EQU  328
REQheightconfigdefault              EQU  222
REQleftedgeconfigdefault            EQU  156
REQtopedgeconfigdefault             EQU  86
RENDER40configdefault               EQU  0
RENDERconfigdefault                 EQU  4
WIDTHconfigdefault                  EQU  320
HEIGHTconfigdefault                 EQU  200
XASPECTconfigdefault                EQU  6
YASPECTconfigdefault                EQU  7
FILEformatconfigdefault             EQU  0
VIEWmodeconfigdefault               EQU  $800
;---------------------------------------------------------------------------------------------------
;KIRK-DEBUG*************
;            movem.l     d0-d1/d7/a0-a1/a6,-(sp)
;            move.l     VALUE,d7
;            movea.l     _AbsExecBase,a6
;            jsr         _LVOAlert(a6)
;            movem.l     (sp)+,d0-d1/d7/a0-a1/a6
;KIRK-DEBUG*************
