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

⟦b79a9f8cb⟧ TextFile

    Length: 3584 (0xe00)
    Types: TextFile
    Names: »OBCALL.SA«

Derivation

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

TextFile

           NOLIST
           INCLUDE     RR.FIOEQU.SA
           LIST
           NOFORMAT
 
           TTL         V 0.04   68K EOS PASCAL OBJECT CALL
OBCALL     IDNT          0,04   68K EOS PASCAL OBJECT CALL
 
           SECTION 8
*
*****************************************************************************
*
*
*          FUNCTION:
*                  THE ROUTINE SETS UP THE PARAMETERS FOR  THE KERNEL CALL
*                  AND ON RETURN THE VALUE PARAMETERS ARE COPIED TO THEIR
*                  RETURN ADDRESS, CALLING MOVEA
*
*          REGISTERS:
*          ON ENTRY:
*
*                  D2   LENGTH OF FIXED ARGUMENT
*                  D5   KERNEL ENTRY NUMBER
*
*
*          MODIFIED REGISTERS
*
*                     0 1 2 3 4 5 6 7
*                  A: * * * * *
*                  D: * * * * * * * *
*
*          EXTERNALS:
*
*                  .POBCALL      DEF
*                  .PMOVEA       REF
*                  .PLJSR        REF
*
*
***************************************************************************
*
           XDEF    .POBCALL
           XREF    .PMOVEA
           XREF    .PLJSR
 
 
.POBCALL   EQU      *                  ENTRY POINT
           MOVE.L   (SP)+,A4           A4:= RETURN ADDRESS
           MOVE.L   RMAOBCDS(A5),A2    A2:= TOP OBJ CALL DESC
         TSTOUT     'OBCALL-DESC',(A2),32(A2),TSTRTS2
           MOVE.L   VALARG(A2),A3      A3:= VAL ARG DESC
         TSTOUT     'OBCALL-STACK',(SP),22(A3),TSTRTS2
           MOVE.L   LOWARG(A2),D1
           SUB.L    SP,D1              IF LOWARG - SP = 0
         IF <EQ>    THEN.S             THEN
           CLR.L    LENGTH(A3)         MOVE ZEROES TO
           CLR.L    FIRST(A3)          SUBSEGMENT DESC
           CLR.W    USE(A3)
           CLR.L    POINTER(A3)
          ELSE.S                       ELSE
           MOVE.L   D1,LENGTH(A3)      LENGTH:= LOWARG - SP
           MOVE.L   SP,A1
           SUBA.L   FTEMP(A5),A1
           MOVE.L   A1,FIRST(A3)       FIRST:= SP - FIRSTTEMP
           MOVE.W   #7,USE(A3)         USE:= EXECUTE/READ/WRITE
           MOVE.L   #16385,POINTER(A3) POINTER:= TEMP1
         ENDI                          END
         TSTOUT 'OBCALL-VALARG',LENGTH(A3),POINTER+4(A3),TSTRTS2
 
* SET UP KERNEL PARAMETERS
           MOVE.L   LOWARG(A2),D4      D4:= LOWARG
           ADD.L    A3,D2              D2:= ARG LENGTH
           SUB.L    D4,D2
           ADD.L    D2,SP              RESET SP
           ADD.L    D1,SP
         MOVE.L     D4,A1              ONLY FOR TEST
         TSTOUT 'OBCALL-BEFORE',(A1),<0(A1,D2.L)>,TSTRTS1
           TRAP     #7                 KERNEL CALL
 
           MOVEM.L  D6/D7,-(SP)        STACK:= RESULT VALUE
           MOVE.L   RMAOBCDS(A5),A2    REINITIALIZE A2
           MOVEA.L  OLDHT(A2),A3       A3:= OLD HEAP TOP
         TSTOUT 'OBCALL-AFTER',(SP),8(SP),TSTRTS2
 
         WHILE.L  HP(A5) <NE> A3 DO.S
         TSTOUT 'OBCALL-VALRET',(A3),12(A3),TSTRTS3
           MOVE.W   (A3)+,D0           D0:= RETLENGTH
           MOVEA.L  (A3)+,A1           A1:= RET TO
           MOVEA.L  (A3)+,A0           A0:= RET FROM
           BSR      .PMOVEA            MOVE
         ENDW
 
           MOVE.L   OLDHT(A2),HP(A5)   HEAPTOP:= OLD HEAPTOP
           MOVE.L   POCD(A2),RMAOBCDS(A5)  TOP OBJ CALL DESC:= PRIOR DESC
           LEA      .PLJSR(PC),A3
         TSTOUT 'OBCALL-EXIT',HP(A5),RMAOBCDS+4(A5),TSTRTS2
           JMP      (A4)
           END
 
«eof»