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

⟦b94558869⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »MPF.SA«

Derivation

└─⟦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« 

TextFile

           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»