|
|
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: 3840 (0xf00)
Types: TextFile
Names: »MPF.SA«
└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »MPF.SA«
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »MPF.SA«
NOLIST
INCLUDE RR.FIOEQU.SA
INCLUDE RR.RTEQU.SA
LIST
NOFORMAT
TTL V 0.02 68K EOS PASCAL MAP DATA SEGMENT FIXED
MPF IDNT 0,02 68K EOS PASCAL MAP DATA SEGMENT FIXED
SECTION 8
*
*****************************************************************************
*
*
* FUNCTION:
* THE ROUTINE MAPS A NEW DATA SEGMENT, USING A KERNEL CALL,
* CHECKS THE LENGTH OF THE SEGMENT, INITIALIZE A MAP
* DESCRIPTOR AND ADJUSTS STARTADDR AND LENGTH
*
*
* REGISTERS:
* ON ENTRY:
*
* D0 MINIMUM LENGTH
*
* A0 ADDRESS OF SEGMENT REFERENCE
* A1 DISPLACEMENT
* A4 ADDRESS OF MAP DESCRIPTOR
* A5 ADDRESS OF RMA DESCRIPTOR
*
* ON EXIT:
* D3 SEGMENT LENGTH
*
* A1 ACTUAL LOGICAL ADDRESS OF SEGMENT
*
* MODIFIED REGISTERS
*
* 0 1 2 3 4 5 6 7
* A: * * * *
* D: * * * * * * * *
*
* EXTERNALS:
*
* .PMPF DEF
* .PLJSR REF
* .PEXCEPT REF
* .PKEREXCP REF
*
***************************************************************************
*
XDEF .PMPF
XREF .PLJSR
XREF .PEXCEPT
XREF .PKEREXCP
.PMPF EQU * ENTRY POINT
TSTOUT 'MPF-ENTER',NRA(A5),FUNC1(A5),TSTRTS3
MOVE.L D0,-(SP) STACK:= MIN LENGTH
MOVE.L A1,-(SP) STACK:= DISPLACEMENT
MOVE.L NRA(A5),REQADDR(A4) REQ ADDR:= NEXT REQ ADDR
MOVE.L A0,PTRADDR(A4) FILL IN MAP DESC FROM RMA DESC
CMPI.B #3,NMMU(A5)
IF <GT> THEN.S
MOVE.L #MMUERR,D0
BSR .PEXCEPT MMUERROR
ENDI
MOVE.B NMMU(A5),MMUNO(A4) MMU NO:= NEXT MMU NO
MOVE.L A0,-(SP) PUT PARAMETERS FOR
MOVE.L NRA(A5),-(SP) KERNEL CALL
MOVE.B NMMU(A5),D0 ON STACK
EXT.W D0
EXT.L D0
MOVE.L D0,-(SP)
MOVE.L SP,D4
MOVEQ #12,D2
MOVE.L #33,D5 FUNCTION:= MAP SEGMENT
TSTOUT 'MPF11',(SP),16(SP),TSTRTS1
TRAP #7 KERNEL CALL
TST.W D7 IF KERNEL RESULT <> OK
BNE .PKEREXCP THEN KERNEL EXCEPTION
ADD.L #12,SP RESET STACK
ADD.L (SP),A1 A1:= LOGICAL ADDRESS + DISPLACEMENT
MOVE.L A1,LOADDR(A4)
MOVE.L D3,D4
SUB.L (SP)+,D3 SEGLENGTH:= D3 - DISPLACEMENT
MOVE.L D3,SEGLGTH(A4)
CMP.L (SP)+,D3 IF LENGTH < MIN LENGTH
IF <LT> THEN.S THEN
MOVE.L #LGTHERR,D0
BSR .PEXCEPT EXCEPTION LENGTHERROR
ENDI
MOVE.L TMD(A5),PMD(A4) PRIOR MAP DESC:= TOP MAP DESC
MOVE.L A4,TMD(A5) TOP MAP DESC:= THIS MAP DESC
ADD.L NRA(A5),D4 NEXT REQ ADDR:= NEXT REQ ADDR +
ADD.L #(1<<22)-1,D4 LENGTH ROUNDED UP MOD 2**22
AND.L #-(1<<22),D4
MOVE.L D4,NRA(A5)
ADD.B #1,NMMU(A5) NEXT MMU:= +1
TSTOUT 'MPF21',NRA(A5),FUNC1(A5),TSTRTS2
TSTOUT 'MPF22',LOADDR(A4),PMD+4(A4),TSTRTS2
LEA .PLJSR(PC),A3
RTS
END
«eof»