home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 1 / FFMCD01.bin / bbs / libdisks / d700t799 / disk718.lha / BootPic / BootPic_source.lz / standard.macs < prev   
Encoding:
Text File  |  1992-08-13  |  7.1 KB  |  354 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. *      Standard-makros rev. 0.3a      am 8.7.1991                           *
  4. *                      rev. 0.4a EZ   am 26.10.1991                         *
  5. *                      rev. 0.5a Int  am 15.10.1991                         *
  6. *                      rev. 0.6  gfx  am 13.12.1991                         *
  7. *                                                                           *
  8. *                                                                           *
  9. *                                                                           *
  10. *****************************************************************************
  11. * 13.12: nbm newbitmap : neue bitmap allokieren
  12. *        fbm freebitmap : Bitmap freigeben
  13. *
  14. PUBLIC  equ 1
  15. CHIP    equ 2
  16. FAST    equ 4
  17. CLEAR   equ $10000
  18.  
  19. push    macro
  20.         move.l  \1,-(a7)
  21.         endm
  22.  
  23. pop     macro
  24.         move.l  (a7)+,\1
  25.         endm
  26. DSEG    macro
  27.         endm
  28. saveall macro
  29.         movem.l d0-7/a0-6,-(sp)
  30.         endm
  31. getall  macro
  32.         movem.l (sp)+,d0-7/a0-6
  33.         endm
  34.  
  35. m_alloc   macro   ; type  length
  36.     getexe
  37.     move.l  \1,d1
  38.     move.l  \2,d0
  39.     call    allocmem
  40.     endm
  41. m_free      macro      ; memory  length
  42.     getexe
  43.     move.l  \1,a1
  44.     move.l  \2,d0
  45.     call    freemem
  46.     endm
  47.  
  48. windowsup   macro
  49. wd_rastport equ     50
  50. wd_userport equ     86
  51.         endm
  52. ib_activewindow equ $34
  53. ib_activescreen equ $38
  54. ib_firstscreen  equ $3c
  55. pr_cli      equ     $ac
  56. pr_msgport  equ     $5c
  57.  
  58. incmodint   macro
  59.             include "dh0:devpac/include/modint.i"
  60.             endm
  61.  
  62. ll      macro
  63.         dc.l    \2
  64.         endm
  65.  
  66. ww      macro
  67.         dc.w    \2
  68.         endm
  69.  
  70. bb      macro
  71.         dc.b    \2
  72.         endm
  73.  
  74. call    macro
  75.         jsr     _lvo\1(a6)
  76.         endm
  77.  
  78.  
  79. elea   macro
  80.         lea     \1,a0
  81.         move.l  a0,\2
  82.         endm
  83. emove  macro
  84.         lea     \2,a0
  85.         move.l  \1,(a0)
  86.         endm
  87.  
  88. incall  macro
  89.         include "dh0:devpac/include/exec/exec_lib.i"
  90.         include "dh0:devpac/include/graphics/graphics_lib.i"
  91.         include "dh0:devpac/include/intuition/intuition_lib.i"
  92.         include "dh0:devpac/include/libraries/dos_lib.i"
  93.         endm
  94. incarp  macro
  95.         include "dh0:devpac/include/arp_lib.i"
  96.         endm
  97.  
  98. incexe  macro
  99.         include "dh0:devpac/include/exec/exec_lib.i"
  100.         endm
  101.  
  102. opendos macro
  103.         include "dh0:devpac/include/libraries/dos_lib.i"
  104.         lea     dosname(pc),a1
  105.         jsr     _lvooldopenlibrary(a6)
  106.         move.l  d0,dosbase
  107.         endm
  108.  
  109. opengfx macro
  110.         include "dh0:devpac/include/graphics/graphics_lib.i"
  111.         lea     gfxname(pc),a1
  112.         jsr     _lvooldopenlibrary(a6)
  113.         move.l  d0,gfxbase
  114.         endm
  115.  
  116. openint macro
  117.         include "dh0:devpac/include/intuition/intuition_lib.i"
  118.         lea     intname(pc),a1
  119.         jsr     _lvooldopenlibrary(a6)
  120.         move.l  d0,intbase
  121.         endm
  122.  
  123. opendfl macro
  124.         include "dh0:devpac/include/libraries/diskfont_lib.i"
  125.         lea     dflname(pc),a1
  126.         jsr     _lvooldopenlibrary(a6)
  127.         move.l  d0,dflbase
  128.         endm
  129.  
  130. openreq macro
  131.         include "dh0:devpac/include/libraries/reqtools_lib.i"
  132.         lea     reqname(pc),a1
  133.         jsr     _lvooldopenlibrary(a6)
  134.         move.l  d0,reqbase
  135.         endm
  136.  
  137. openarp macro
  138.         lea     arpname(pc),a1
  139.         jsr     _lvooldopenlibrary(a6)
  140.         move.l  d0,arpbase
  141.         endm
  142.  
  143. getdos  macro
  144.         ifd   EZ
  145.         move.l  _DosBase(a5),a6
  146.         endc
  147.         ifnd  EZ
  148.         move.l  dosbase(pc),a6
  149.         endc
  150.         endm
  151.  
  152. getint  macro
  153.         ifd    EZ
  154.         move.l  _IntuitionBase(a5),a6
  155.         endc
  156.         ifnd    EZ
  157.         move.l  intbase(pc),a6
  158.         endc
  159.         endm
  160.  
  161. getgfx  macro
  162.         ifd    EZ
  163.         move.l  _GfxBase(a5),a6
  164.         endc
  165.         ifnd    EZ
  166.         move.l  gfxbase(pc),a6
  167.         endc
  168.         endm
  169.  
  170. getdfl  macro
  171.         ifd    EZ
  172.         move.l  _DiskFontBase(a5),a6
  173.         endc
  174.         ifnd    EZ
  175.         move.l  dflbase(pc),a6
  176.         endc
  177.         endm
  178.  
  179. getarp  macro
  180.         ifd    EZ
  181.         move.l  _ArpBase(a5),a6
  182.         endc
  183.         ifnd    EZ
  184.         move.l  arpbase(pc),a6
  185.         endc
  186.         endm
  187.  
  188. getexe  macro
  189.         move.l  4.w,a6
  190.         endm
  191.  
  192. closedos    macro
  193.         move.l  dosbase(pc),a1
  194.         jsr     _lvocloselibrary(a6)
  195.         endm
  196.  
  197. closegfx    macro
  198.         move.l  gfxbase(pc),a1
  199.         jsr     _lvocloselibrary(a6)
  200.         endm
  201.  
  202. closeint    macro
  203.         move.l  intbase(pc),a1
  204.         jsr     _lvocloselibrary(a6)
  205.         endm
  206.  
  207. closearp    macro
  208.         move.l  arpbase(pc),a1
  209.         jsr     _lvocloselibrary(a6)
  210.         endm
  211.  
  212. closereq    macro
  213.         move.l  reqbase(pc),a1
  214.         jsr     _lvocloselibrary(a6)
  215.         endm
  216.  
  217. closedfl    macro
  218.         move.l  dflbase(pc),a1
  219.         jsr     _lvocloselibrary(a6)
  220.         endm
  221.  
  222. intstuff    macro
  223. intbase     dc.l    0
  224. intname     dc.b    'intuition.library',0
  225.             even
  226.             endm
  227.  
  228. dosstuff    macro
  229. dosbase     dc.l    0
  230. dosname     dc.b    'dos.library',0
  231.             even
  232.             endm
  233.  
  234. gfxstuff    macro
  235. gfxbase     dc.l    0
  236. gfxname     dc.b    'graphics.library',0
  237.             even
  238.             endm
  239.  
  240. arpstuff    macro
  241. arpbase     dc.l    0
  242. arpname     dc.b    'arp.library',0
  243.             even
  244.             endm
  245.  
  246. dflstuff    macro
  247. dflbase     dc.l    0
  248. dflname     dc.b    'diskfont.library',0
  249.             even
  250.             endm
  251.  
  252. reqstuff    macro
  253. reqbase     dc.l    0
  254. reqname     dc.b    'reqtools.library',0
  255.             even
  256.             endm
  257.  
  258. ** Used to save some mem using EZAsm
  259.  
  260. EZintstuff    macro
  261. intname     dc.b    'intuition.library',0
  262.             even
  263.             endm
  264.  
  265. EZdosstuff    macro
  266. dosname     dc.b    'dos.library',0
  267.             even
  268.             endm
  269.  
  270. EZgfxstuff    macro
  271. gfxname     dc.b    'graphics.library',0
  272.             even
  273.             endm
  274.  
  275.  
  276.  
  277.  
  278. nbm macro      ; d0= depth d1= width d2= height
  279. newbitmap
  280.     movem.l d1-5/a0-3/a6,-(sp)
  281.     moveq.w #0,d4
  282.     move.b  d0,d4
  283.     move.w  d1,d5
  284.     getexe
  285.     move.l  #$10001,d1
  286.     moveq.l #48,d0
  287.     call    allocmem
  288.     move.l  d0,a2
  289.     move.w  d4,d0
  290.     move.w  d5,d1
  291.     move.l  a2,a0
  292.     getgfx
  293.     call    initbitmap
  294.     subq.b  #1,d4     ;wegen dbf
  295.     move.l  a2,a3
  296.     addq.l  #8,a2
  297. ;    getgfx
  298. 1$  move.w  d5,d0
  299.     move.w  d2,d1
  300.     call    allocraster
  301.     tst.l   d0
  302.     beq.s   nbm_error
  303.     move.l  d0,(a2)+
  304.     move.l  d0,a1
  305.     move.w  d2,d0
  306.     swap    d0
  307.     move.w  d5,d0
  308.     lsr.w   #3,d0
  309.     moveq.w #2,d1
  310.     call    bltclear
  311.  
  312.  
  313.     dbf     d4,1$
  314.     move.l  a3,d0
  315.     bra.s   nbm_ok
  316. nbm_error
  317.     move.l  a3,d0
  318.     bsr     freebitmap
  319.     moveq.l #0,d0
  320. nbm_ok
  321.     movem.l (sp)+,d1-5/a0-3/a6
  322.     rts
  323.  
  324.     endm
  325.  
  326. fbm macro
  327. freebitmap     ; d0= bitmap
  328.     movem.l d0-2/a0-3/a6,-(sp)
  329.     move.l  d0,a2
  330.     move.l  d0,a3
  331.     moveq.w #0,d2
  332.     move.b  5(a2),d2
  333.     subq.b  #1,d2
  334.     addq.l  #8,a3
  335.     getgfx
  336. 1$  tst.l   (a3)
  337.     beq.s   2$
  338.     move.l  (a3),a0
  339.     clr.l   (a3)+
  340.     move.w  (a2),d0
  341.     lsl.w   #3,d0
  342.     move.w  2(a2),d1
  343.     call    freeraster
  344.     dbf     d2,1$
  345. 2$  getexe
  346.     move.l  a2,a1
  347.     moveq.l #48,d0
  348.     call    freemem
  349.     movem.l (sp)+,d0-2/a0-3/a6
  350.     rts
  351.  
  352.     endm
  353.  
  354.