DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦e7afe3c45⟧ TextFile

    Length: 2176 (0x880)
    Types: TextFile
    Names: »MRK.SA«

Derivation

└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »MRK.SA« 
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »MRK.SA« 

TextFile

         NOLIST
         INCLUDE   RR.RTEQU.SA
         INCLUDE   RR.MACROS.SA
         LIST
*
*        FILE RR.RTEQU.SA HAS BEEN INCLUDED
*        FILE RR.MACROS.SA HAS BEEN INCLUDED
*
         TTL     V 0.01 68K EOS PASCAL MARK (HEAP MARKING) SUBROUTINE
MRK      IDNT    0,01   68K EOS PASCAL MARK (HEAP MARKING) SUBROUTINE
         SECTION 8           ! 68K PASCAL RUNTIME ROUTINES BELONG IN 8
*
*********
*
*        MRK, MARK THE TOP OF THE HEAP
*
*        ENTRY:
*                A0 = PTR TO THE VARIABLE THAT IS SUPPOSED TO RECIEVE
*                     THE CURRENT TOP OF HEAP PTR
*
*        EXIT:
*                NONE.
*
*        USES:
*                   0 1 2 3 4 5 6 7
*                A: * X X X X X X A
*                D: X X X X X X X *
*
*        UDPATED FOR EOS PASCAL USE
*
*
*        FUNCTION:
*           MRK FIRST CHECKS TO SEE IF STACK HEAP OVERFLOW HAS OCCURED
*        AND THEN MAKES A COPY OF THE TOP OF HEAP POINTER IN THE USERS
*        VARIABLE.
*
*        EXTERNALS:
*                .PMRK = DEF, ENTRY POINT FOR THE MARK THE HEAP ROUTINE
*
*                .PCHKOVF = REF, CHECK FOR STACK HEAP OVERFLOW ROUTINE
*
*                .PCHKOBJ = REF, CHECK FOR OBJECT CALL
*
*********
*
         XDEF    .PMRK       ! ENTRY POINT FOR THE HEAP MARKING ROUTINE
*
         XREF    .PCHKOVF    ! STACK HEAP OVERFLOW CHECKING ROUTINE
*
           XREF    .PCHKOBJ    ! CHECK FOR OBJECT CALL
*
.PMRK:   EQU     *           ! THIS IS THE ENTRY POINT FOR THE HEAP MARKER
*
         MOVE.L  (A7),D7     ! D7 = RETURN ADDRESS IN CASE OF ERROR
 
           BSR     .PCHKOBJ    ! ERROR IF OBJECT CALL
*        
*        CHECK FOR STACKHEAP OVERFLOW
*
         BSR     .PCHKOVF    ! ERROR IF STACK/HEAP OVERFLOW HAS OCCURED
*
*        PUT A COPY OF THE TOP OF HEAP POINTER IN THE USERS VARIABLE
*
         MOVE.L  4(A5),(A0)  ! COPY THE TOP OF HEAP POINTER.
         SUBQ.L  #4,(A0)     ! MAKE POINTER LIKE ONE RETURNED BY NEW
*
*        RETURN TO THE PASCAL PROGRAM
*
         RTS                 ! RETURN TO THE PASCAL PROGRAM
         END
«eof»