home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 110 / EnigmaAmiga110CD.iso / software / varie / ksc_utils / setcop.asm < prev    next >
Assembly Source File  |  2000-02-21  |  2KB  |  87 lines

  1. ; SetCop v1.0 : installs copperlist at specified hex address
  2. ; by Kyzer/CSG
  3. ; $VER: SetCop.asm 1.0 (22.06.98)
  4. ;
  5.     incdir    include:
  6.     include    dos/dos.i
  7.     include    exec/execbase.i    
  8.     include    hardware/custom.i
  9.     include    lvo/dos_lib.i
  10.     include    lvo/exec_lib.i
  11.     include    lvo/graphics_lib.i
  12.     incdir    ""
  13.  
  14. _custom=$dff000
  15.  
  16.     move.l    4.w,a6
  17.     move.l    MaxLocMem(a6),d7    ; d7 = chipmem top
  18.     lea    dosname(pc),a1
  19.     moveq    #36,d0
  20.     jsr    _LVOOpenLibrary(a6)
  21.     tst.l    d0
  22.     beq    .nodos
  23.     move.l    d0,a6
  24.  
  25.     lea    templat(pc),a0
  26.     move.l    a0,d1
  27.     lea    copaddr(pc),a2
  28.     clr.l    (a2)
  29.     move.l    a2,d2
  30.     moveq    #0,d3
  31.     jsr    _LVOReadArgs(a6)
  32.     tst.l    d0
  33.     beq.s    .noargs
  34.     move.l    d0,-(sp)        ; push [rdargs]
  35.  
  36.     move.l    (a2),a0
  37.     bsr.s    hex
  38.     tst.l    d1
  39.     beq.s    .fail
  40.     cmp.l    d7,d0    ; cmp memtop,d0
  41.     bcs.s    .ok    ; d0 < memtop
  42. .fail    moveq    #ERROR_BAD_NUMBER,d1
  43.     jsr    _LVOSetIoErr(a6)
  44.     bra.s    .badnum
  45.  
  46. .ok    move.l    a6,-(sp)        ; push [dosbase]
  47.  
  48.     move.l    d0,d7
  49.     move.l    4.w,a6
  50.     lea    gfxname(pc),a1
  51.     moveq    #33,d0
  52.     jsr    _LVOOpenLibrary(a6)
  53.     tst.l    d0
  54.     beq.s    .nogfx
  55.     move.l    d0,a6
  56.     suba.l    a1,a1
  57.     jsr    _LVOLoadView(a6)
  58.     jsr    _LVOWaitTOF(a6)
  59.     jsr    _LVOWaitTOF(a6)
  60.     move.l    a6,a1
  61.     move.l    4.w,a6
  62.     jsr    _LVOCloseLibrary(a6)
  63. .nogfx    lea    _custom,a6
  64.     move.l    d7,cop1lc(a6)
  65.     move.w    #0,copjmp1(a6)
  66.  
  67.     move.l    (sp)+,a6        ; pop [dosbase]
  68.  
  69. .badnum    move.l    (sp)+,d1        ; pop [rdargs]
  70.     jsr    _LVOFreeArgs(a6)
  71. .noargs    jsr    _LVOIoErr(a6)
  72.     move.l    d0,d1
  73.     moveq    #0,d2
  74.     jsr    _LVOPrintFault(a6)
  75.     move.l    a6,a1
  76.     move.l    4.w,a6
  77.     jsr    _LVOCloseLibrary(a6)
  78. .nodos    moveq    #0,d0
  79.     rts
  80.  
  81. hex    include    hex.asm
  82.  
  83. copaddr    dc.l    0
  84. templat    dc.b    'COPPER/A',0
  85. dosname    dc.b    'dos.library',0
  86. gfxname    dc.b    'graphics.library',0
  87.