|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3584 (0xe00)
Types: TextFile
Names: »OBCALL.SA«
└─⟦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«
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»