home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1994 / 6 / 01 / mini-compiler / mini.ampk / Mini-Compiler / asm / Stack.lib < prev    next >
Encoding:
Text File  |  1995-06-01  |  681 b   |  28 lines

  1.     Xdef    StackCheck
  2.     xref    Stack_NewAdr        ; BasisAdresse neuer Stack
  3.     Xref    StackSize
  4.     Xref    Error
  5.  
  6. Sicherheit    equ    222        ; Sicherheitsreserve am Stackende
  7.  
  8.     ; Gewünschte Größe steht in D0
  9.     ;
  10.  
  11. StackCheck
  12.     Move.l    Stack_NewAdr,d1        ; BasisAdresse, die nicht unter
  13.                     ; schritten werden darf
  14.     Move.l    a7,d2            ; Aktueller Stack
  15.  
  16.     ; Folgende Rechnung sollte zum Erfolg führen
  17.     ; Akt.Stack - GewünschteGröße - Sicherheit >= Stack_NewAdr
  18.     ;    D2     -   D0          - Sicherheit >= d1
  19.  
  20.     Sub.l    d0,d2            ; D2 = D2 - D0 (Stack-Size)
  21.     Sub.l    #Sicherheit,d2        ; D2 = D2 - Sicherheit
  22.     Sub.l    D1,d2            ; Nun noch die Basisadr. abziehen
  23.     bpl.s    Ok            ; >= 0, dann ist Stack ok
  24.     Moveq    #11,d0
  25.     jmp    Error
  26. Ok    RTS
  27.     
  28.