home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 514b.lha / ToolLib_v8.1 / Source / extgfx.s < prev    next >
Text File  |  1991-06-08  |  2KB  |  55 lines

  1.             opt     l+,o+,ow-
  2. *
  3. *   extgfx.s version 8.1 - © Copyright 1990 Jaba Development
  4. *
  5. *   Author    : Jan van den Baard
  6. *   Assembler : Devpac vesion 2.14
  7. *
  8.             incdir  'sys:devpac_inc/'
  9.             include 'mymacros.i'
  10.             include 'intuition/intuition.i'
  11.             include 'exec/memory.i'
  12.             include 'graphics/graphics_lib.i'
  13.             include 'intuition/intuition_lib.i'
  14.             include 'exec/exec_lib.i'
  15.  
  16.             XREF    _GfxBase
  17.             XREF    DoBuf
  18.             XREF    StrLen
  19.  
  20.             XDEF    FormatText
  21.  
  22. FormatText:     movem.l a2-a6,-(sp)
  23.                 move.l  a2,a4               ; arguments to a4
  24.                 move.l  a1,a3               ; format string to a3
  25.                 move.l  a0,a2               ; rastport to a2
  26.                 move.l  (_SysBase).w,a6
  27.                 move.l  #512,d0             ; 512 bytes MAXIMUM
  28.                 moveq   #MEMF_PUBLIC,d1
  29.                 libcall AllocMem            ; allocate buffer
  30.                 move.l  d0,a5
  31.                 beq.s   NoMem               ; buffer allocation failed
  32.                 movem.l a2-a3,-(sp)         ; save registers
  33.                 move.l  a3,a0
  34.                 move.l  a4,a1
  35.                 move.l  #DoBuf,a2
  36.                 move.l  a5,a3
  37.                 libcall RawDoFmt            ; format the string
  38.                 movem.l (sp)+,a2-a3         ; restore registers
  39.                 move.l  _GfxBase,a6
  40.                 move.l  a5,a0
  41.                 bsr     StrLen
  42.                 move.l  d0,-(sp)
  43.                 move.l  a5,a0               ; string in a0
  44.                 move.l  a2,a1               ; rastport in a1
  45.                 libcall Text                ; print the string
  46.                 move.l  (_SysBase).w,a6
  47.                 move.l  a5,a1
  48.                 move.l  #512,d0             ; free the buffer
  49.                 libcall FreeMem
  50.                 move.l  (sp)+,d0
  51.                 bra.s   EndFT
  52. NoMem:          cldat   d0
  53. EndFT:          movem.l (sp)+,a2-a6
  54.                 rts
  55.