*
*  Source machine generated by GadToolsBox V2.0
*  which is (c) Copyright 1991-1993 Jaba Development
*
*  GUI Designed by : M.Meany, © MMSoftware.
*

    include 'exec/types.i'
    include 'intuition/intuition.i'
    include 'intuition/classes.i'
    include 'intuition/classusr.i'
    include 'intuition/imageclass.i'
    include 'intuition/gadgetclass.i'
    include 'libraries/gadtools.i'
    include 'graphics/displayinfo.i'
    include 'graphics/gfxbase.i'

    XREF    _GadToolsBase
    XREF    _IntuitionBase
    XREF    _GfxBase
    XREF    _SysBase

OpenScreenTagList    EQU    -612
OpenWindowTagList    EQU    -606
CloseScreen          EQU    -66
CloseWindow          EQU    -72
PrintIText           EQU    -216
LockPubScreen        EQU    -510
UnlockPubScreen      EQU    -516
SetMenuStrip         EQU    -264
ClearMenuStrip       EQU    -54
GetVisualInfoA       EQU    -126
FreeVisualInfo       EQU    -132
CreateContext        EQU    -114
CreateGadgetA        EQU    -30
GT_RefreshWindow     EQU    -84
FreeGadgets          EQU    -36
CreateMenusA         EQU    -48
LayoutMenusA         EQU    -66
FreeMenus            EQU    -54
OpenDiskFont         EQU    -30
CloseFont            EQU    -78
DrawBevelBoxA        EQU    -120
FreeClass            EQU    -714
NewObjectA           EQU    -636
DisposeObject        EQU    -642
TextLength           EQU    -54
CopyMem              EQU    -624
FindTagItem          EQU    -30
IntuiTextLength      EQU    -330
Forbid               EQU    -132
Permit               EQU    -138

GD_QuitGadg                            EQU    0		0
GD_LoadGadg                            EQU    1		4
GD_PrintTextGadg                       EQU    2		8
GD_SetFileGadg                         EQU    3		12
GD_GrabParGadg                         EQU    4		16
GD_GrabTextGadg                        EQU    5		20
GD_DeviceGadg                          EQU    6		24
GD_AboutGadg                           EQU    7		28
GD_CopiesGadg                          EQU    8		32

Marks_CNT    EQU    9

    XDEF    Scr
    XDEF    VisualInfo
    XDEF    PubScreenName
    XDEF    MarksWnd
    XDEF    MarksGList
    XDEF    MarksGadgets
    XDEF    MarksLeft
    XDEF    MarksTop
    XDEF    MarksWidth
    XDEF    MarksHeight

Scr:
    DC.L    0
VisualInfo:
    DC.L    0
PubScreenName:
    DC.L    0
MarksWnd:
    DC.L    0
MarksGList:
    DC.L    0
MarksGadgets:
    DCB.L    9,0
BufNewGad:
    DC.W    0,0,0,0
    DC.L    0,0
    DC.W    0
    DC.L    0,0,0
TD:
    DC.L    TAG_DONE
NR:
    DC.L    GT_VisualInfo,$00000000,TAG_DONE
IR:
    DC.L    GT_VisualInfo,$00000000,GTBB_Recessed,1,TAG_DONE
MarksLeft:
    DC.W    0
MarksTop:
    DC.W    15
MarksWidth:
    DC.W    636
MarksHeight:
    DC.W    124

MarksGTypes:
    DC.W    BUTTON_KIND
    DC.W    BUTTON_KIND
    DC.W    TEXT_KIND
    DC.W    BUTTON_KIND
    DC.W    BUTTON_KIND
    DC.W    TEXT_KIND
    DC.W    MX_KIND
    DC.W    BUTTON_KIND
    DC.W    INTEGER_KIND

MarksNGads:
    DC.W    551,103,67,14
    DC.L    QuitGadgText,0
    DC.W    GD_QuitGadg
    DC.L    PLACETEXT_IN,0,0
    DC.W    32,17,108,13
    DC.L    LoadGadgText,0
    DC.W    GD_LoadGadg
    DC.L    PLACETEXT_IN,0,0
    DC.W    32,50,241,12
    DC.L    PrintTextGadgText,0
    DC.W    GD_PrintTextGadg
    DC.L    PLACETEXT_ABOVE,0,0
    DC.W    434,16,78,13
    DC.L    SetFileGadgText,0
    DC.W    GD_SetFileGadg
    DC.L    PLACETEXT_IN,0,0
    DC.W    435,49,78,13
    DC.L    GrabParGadgText,0
    DC.W    GD_GrabParGadg
    DC.L    PLACETEXT_IN,0,0
    DC.W    350,33,241,12
    DC.L    GrabTextGadgText,0
    DC.W    GD_GrabTextGadg
    DC.L    0,0,0
    DC.W    107,100,17,9
    DC.L    DeviceGadgText,0
    DC.W    GD_DeviceGadg
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    282,103,67,14
    DC.L    AboutGadgText,0
    DC.W    GD_AboutGadg
    DC.L    PLACETEXT_IN,0,0
    DC.W    208,17,65,13
    DC.L    CopiesGadgText,0
    DC.W    GD_CopiesGadg
    DC.L    PLACETEXT_LEFT,0,0

MarksGTags:
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    GTTX_Text,PrintTextGadgString
    DC.L    GTTX_Border,1
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    GTTX_Text,GrabTextGadgString
    DC.L    GTTX_Border,1
    DC.L    TAG_DONE
    DC.L    GTMX_Labels,DeviceGadgLabels
    DC.L    GTMX_Spacing,0
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    GTIN_Number,1
    DC.L    GTIN_MaxChars,4
    DC.L    TAG_DONE


PrintTextGadgString:
    DC.B    'Waiting to print!',0
    CNOP    0,2

GrabTextGadgString:
    DC.B    'Waiting to grab!',0
    CNOP    0,2

QuitGadgText:
    DC.B    'Quit',0

LoadGadgText:
    DC.B    'Print Files',0

PrintTextGadgText:
    DC.B    'Printing',0

SetFileGadgText:
    DC.B    'Set File',0

GrabParGadgText:
    DC.B    'Grab',0

GrabTextGadgText:
    DC.B    '',0

DeviceGadgText:
    DC.B    '',0

AboutGadgText:
    DC.B    'About',0

CopiesGadgText:
    DC.B    'Copies',0

    CNOP    0,2

    XDEF    DeviceGadgLabels

DeviceGadgLabels:
    DC.L    DeviceGadgLab0
    DC.L    DeviceGadgLab1
    DC.L    0

DeviceGadgLab0:    DC.B    'Parallel',0
DeviceGadgLab1:    DC.B    'Serial',0

    CNOP    0,2

    XDEF    topaz8

topaz8:
    DC.L    topazFName8
    DC.W    8
    DC.B    $00,$01

topazFName8:
    DC.B    'topaz.font',0
    CNOP    0,2

    XDEF    MarksWindowTags

MarksWindowTags:
MarksL:
    DC.L    WA_Left,0
MarksT:
    DC.L    WA_Top,0
MarksW:
    DC.L    WA_Width,0
MarksH:
    DC.L    WA_Height,0
    DC.L    WA_IDCMP,BUTTONIDCMP!TEXTIDCMP!MXIDCMP!INTEGERIDCMP!IDCMP_CLOSEWINDOW!IDCMP_REFRESHWINDOW
    DC.L    WA_Flags,WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_SMART_REFRESH!WFLG_ACTIVATE!WFLG_RMBTRAP
MarksWG:
    DC.L    WA_Gadgets,0
    DC.L    WA_Title,MarksWTitle
    DC.L    WA_ScreenTitle,MarksSTitle
MarksSC:
    DC.L    WA_PubScreen,0
    DC.L    WA_Zoom,.NZ
    DC.L    TAG_DONE

.NZ DC.W    0,0,219,11

MarksWTitle:
    DC.B    'CMD Controller',0
    CNOP    0,2

MarksSTitle:
    DC.B    'Programmed and © by M.Meany, MMSoftware.',0
    CNOP    0,2

    XDEF    MarksText0

MarksText0:
    DC.B    1,0
    DC.B    RP_JAM1
    DC.B    0
    DC.W    40,69
    DC.L    topaz8
    DC.L    MarksIText0
    DC.L    MarksText1

MarksText1:
    DC.B    1,0
    DC.B    RP_JAM1
    DC.B    0
    DC.W    88,79
    DC.L    topaz8
    DC.L    MarksIText1
    DC.L    MarksText2

MarksText2:
    DC.B    1,0
    DC.B    RP_JAM1
    DC.B    0
    DC.W    382,68
    DC.L    topaz8
    DC.L    MarksIText2
    DC.L    MarksText3

MarksText3:
    DC.B    1,0
    DC.B    RP_JAM1
    DC.B    0
    DC.W    391,79
    DC.L    topaz8
    DC.L    MarksIText3
    DC.L    0

MarksIText0:
    DC.B    'Copy files grabbed using CMD',0

MarksIText1:
    DC.B    'to your printer.',0

MarksIText2:
    DC.B    'Redirect output from your',0

MarksIText3:
    DC.B    'printer to a disk file.',0

    CNOP    0,2

    XDEF    SetupScreen

SetupScreen
    movem.l d1-d3/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  PubScreenName,a0
    jsr     LockPubScreen(a6)
    move.l  d0,Scr
    tst.l   d0
    beq     SError
    move.l  Scr,a0
    move.l  _GadToolsBase,a6
    lea.l   TD,a1
    jsr     GetVisualInfoA(a6)
    move.l  d0,VisualInfo
    tst.l   d0
    beq     VError
    moveq   #0,d0
SDone:
    movem.l (sp)+,d1-d3/a0-a2/a6
    rts
SError:
    moveq   #1,d0
    bra.s   SDone
VError:
    moveq   #2,d0
    bra.s   SDone

    XDEF    CloseDownScreen

CloseDownScreen:
    movem.l d0-d1/a0-a1/a6,-(sp)
    move.l  _GadToolsBase,a6
    move.l  VisualInfo,a0
    cmpa.l  #0,a0
    beq.s   NoVis
    jsr     FreeVisualInfo(a6)
    move.l  #0,VisualInfo
NoVis:
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    move.l  Scr,a1
    cmpa.l  #0,a1
    beq.s   NoScr
    jsr     UnlockPubScreen(a6)
    move.l  #0,Scr
NoScr:
    movem.l (sp)+,d0-d1/a0-a1/a6
    rts

    XDEF    MarksRender

MarksRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  MarksWnd,a0
    move.b  wd_BorderLeft(a0),d4
    ext.w   d4
    move.b  wd_BorderTop(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  MarksWnd,a0
    move.l  wd_RPort(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #332,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #286,d2
    move.w  #95,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #11,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #286,d2
    move.w  #95,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  MarksWnd,a0
    move.l  wd_RPort(a0),a0
    lea.l   MarksText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenMarksWindow

OpenMarksWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  sc_WBorLeft(a0),d2
    move.l  sc_Font(a0),a1
    move.w  ta_YSize(a1),d3
    addq.w  #1,d3
    add.b   sc_WBorTop(a0),d3
    move.l  _GadToolsBase,a6
    lea.l   MarksGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     MarksCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   MarksGTags,a4
MarksGL:
    move.l  _SysBase,a6
    lea.l   MarksNGads,a0
    move.l  d3,d0
    mulu    #gng_SIZEOF,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #gng_SIZEOF,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,gng_VisualInfo(a0)
    move.l  #topaz8,gng_TextAttr(a0)
    move.w  gng_LeftEdge(a0),d0
    add.w   (sp),d0
    move.w  d0,gng_LeftEdge(a0)
    move.w  gng_TopEdge(a0),d0
    add.w   2(sp),d0
    move.w  d0,gng_TopEdge(a0)
    move.l  _GadToolsBase,a6
    lea.l   MarksGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    MarksCOK
    movem.w (sp)+,d2-d3
    bra     MarksCError
MarksCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   MarksGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
MarksTL:
    tst.l   (a4)
    beq.s   MarksDN
    addq.w  #8,a4
    bra.s   MarksTL
MarksDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Marks_CNT,d3
    bmi     MarksGL
    movem.w (sp)+,d2-d3
    move.l  MarksGList,MarksWG+4
    move.l  Scr,MarksSC+4
    moveq   #0,d0
    move.w  MarksLeft,d0
    move.l  d0,MarksL+4
    move.w  MarksTop,d0
    move.l  d0,MarksT+4
    move.w  MarksWidth,d0
    move.l  d0,MarksW+4
    move.w  MarksHeight,d0
    add.w   d3,d0
    move.l  d0,MarksH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   MarksWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,MarksWnd
    tst.l   d0
    beq     MarksWError
    move.l  _GadToolsBase,a6
    move.l  MarksWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    bsr     MarksRender
    moveq   #0,d0
MarksDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
MarksCError:
    moveq   #1,d0
    bra.s   MarksDone
MarksGError:
    moveq   #2,d0
    bra.s   MarksDone
MarksWError:
    moveq   #4,d0
    bra.s   MarksDone

    XDEF    CloseMarksWindow

CloseMarksWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  MarksWnd,a0
    cmpa.l  #0,a0
    beq     MarksNWnd
    jsr     CloseWindow(a6)
    move.l  #0,MarksWnd
MarksNWnd:
    move.l  _GadToolsBase,a6
    move.l  MarksGList,a0
    cmpa.l  #0,a0
    beq     MarksNGad
    jsr     FreeGadgets(a6)
    move.l  #0,MarksGList
MarksNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts


