;---T---T---T---T---T---T---T---T---T---T---T---T---T---T---T---T---T---T---T
*****************************
*     __/\_  __/\____/\_    *
*     \   7  \     7    \   *
*     /   | __\  __:    |   *
*    /    l/   \_  \    |   *
*    \              \   |   *
*     \  __\________/  _/   *
*      \/            \/     *
*****************************
*   © 1997 SNIPER/LSi       *
*****************************

    MC68000

    INCDIR  'include:asm/'
    INCLUDE 'hardware/custom.i'
    INCLUDE 'exec/exec_lib.i'
    INCLUDE 'exec/execbase.i'
    INCLUDE 'graphics/graphics_lib.i'
    INCLUDE 'graphics/gfxbase.i'
    INCLUDE 'dos/dos_lib.i'


    OUTPUT  'eproj:tools/beam/beam'

    SECTION 'beam',CODE

__beam:

    move.l  4.w,a6          

    ; open dos.library
    lea     dos_lib(pc),a1
    jsr     _LVOOldOpenLibrary(a6)
    move.l  d0,a5
    beq.s   .exit

    ; open graphic.library
    lea     gfx_lib(pc),a1
    jsr     _LVOOldOpenLibrary(a6)
    move.l  d0,a4
    beq.s   .closedos

    jsr     _LVOForbid(a6)


    lea     $dff000,a3                  ; custombase

    ; activate orig view
    move.l  a4,a6
    move.l  gb_ActiView(a6),a1
    jsr     _LVOLoadView(a6)            ; _LVOLoadview(OldView)
    jsr     _LVOWaitTOF(a6)

    ; set coplist and beamcon0
    move.l  gb_current_monitor(a6),a0   ; get&set beamcon0
    move    ms_BeamCon0(a0),beamcon0(a3)

    lea     cop1lc(a3),a0
    move.l  gb_copinit(a6),(a0)+        ; restore coplist1
    move.l  gb_LOFlist(a6),(a0)+        ; restore coplist2
    clr.l   (a0)

    jsr     _LVOWaitTOF(a6)

    move.l  $4.w,a6
    jsr     _LVOPermit(a6)

    ; output string

    move.l  a5,a6
    jsr     _LVOOutput(a6)
    move.l  d0,d1
    move.l  #string,d2
    move.l  #stringend-string,d3
    jsr     _LVOWrite(a6)

    ; close all
.closegfx
    move.l  $4.w,a6
    move.l  a4,a1
    jsr     _LVOCloseLibrary(a6)

.closedos
    move.l  a5,a1
    jsr     _LVOCloseLibrary(a6)

.exit
    moveq   #0,d0
    rts



dos_lib:    dc.b    'dos.library',0
	    even
gfx_lib:    dc.b    'graphics.library',0
	    even

	    dc.b    '$VER: '
string      dc.b    'Beam V1.0 (12-11-97) by SNIPER^LSI',10
stringend   dc.b    0
	    even

*******************************
	    END
