home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 600-699 / ff634.lha / NewDefTool / Source / Base.i next >
Text File  |  1992-04-06  |  2KB  |  62 lines

  1. PR_WindowPtr       = $b8     ; i includefilen dos/dosextens.i står det pr_WindowPrt
  2.  
  3. INIT_AMIGA         MACRO                          ; Handles the WB/CLI problems (init)
  4.  
  5.                    move.l  sp,Init_Sp
  6.  
  7.                    move.l  a0,ArgList                 ;Save aguments
  8.                    subq.l  #1,d0                      ;Minska längden med 1
  9.                    add.l   d0,a0                      ;Addera längden till adressen
  10.                    move.b  #0,(a0)                    ;Nolla sista byten (CLI=0A)
  11.  
  12.                    clr.l   ResultKod
  13.  
  14.                    move.l  (ExecBase).w,a6
  15.                    sub.l   a1,a1
  16.                    jsr     _FindTask(a6)              ; Find this task
  17.                    move.l  d0,TaskAdr
  18.                    move.l  d0,a4
  19.  
  20.                    move.l  PR_WindowPtr(a4),OldWinPtr ; Save old Error window
  21.  
  22.                    tst.l   $ac(a4)     ;pr_CLI(a4)    ; Start from CLI?
  23.                    bne.s   Init_CLI
  24.                    lea     $5c(a4),a0  ;pr_MsgPort(a4),a0
  25.                    jsr     _WaitPort(a6)              ; Wait for message
  26.                    lea     $5c(a4),a0  ;pr_MsgPort(a4),a0
  27.                    jsr     _GetMsg(a6)                ; Get message
  28.                    move.l  d0,Init_Msg                ; and save it for Exit
  29.                    move.l  #1,WBTRUE
  30. Init_CLI:
  31.                    ENDM
  32.  
  33.  
  34.  
  35. EXIT_AMIGA         MACRO                       ; Handles the WB/CLI problem (exit)
  36.  
  37.                    move.l TaskAdr,a4
  38.                    move.l OldWinPtr,PR_WindowPtr(a4)  ; Restore error window
  39.  
  40.                    tst.l  Init_Msg
  41.                    beq.s  Exit_CLI
  42.  
  43.                    move.l (ExecBase).w,a6
  44.                    jsr    _Forbid(a6)
  45.                    move.l Init_Msg,a1
  46.                    jsr    _ReplyMsg(a6)
  47.  
  48. Exit_CLI:        ;  moveq  #0,d0
  49.                    move.l ResultKod,d0
  50.                    move.l Init_Sp,sp
  51.                    rts
  52.  
  53. Init_Msg:          dc.l   0
  54. Init_Sp:           dc.l   0
  55. TaskAdr:           dc.l   0
  56. OldWinPtr:         dc.l   0
  57. ArgList:           dc.l   0
  58. WBTRUE             dc.l   0
  59. ResultKod          dc.l   0
  60.                    ENDM
  61.  
  62.