|
|
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: »GOTO.SA«
└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »GOTO.SA«
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »GOTO.SA«
NOLIST
INCLUDE RR.FIOEQU.SA
LIST
NOFORMAT
TTL V 0.03 68K EOS PASCAL GOTO
GOTO IDNT 0,03 68K EOS PASCAL GOTO
SECTION 8
*
*****************************************************************************
*
*
* FUNCTION:
* THE ROUTINE ADJUSTS THE EXCEPTION, MAP AND PROCEDURE
* DESCRIPTORS. ALL DESCRIPTORS ABOVE STACK ADDRESS (A0)
* IS REMOVED, AND THE NEW TOP MAP DESCRIPTORS ARE RE-
* MAPPED. THE PROCEDURE EPILOG FOR EACH REMOVED PROCE-
* DURE DESCRIPTOR ARE EXECUTED.
*
* REGISTERS:
* ON ENTRY:
*
*
* A0 STACK ADDRESS
*
* MODIFIED REGISTERS
*
* 0 1 2 3 4 5 6 7
* A: * * * *
* D: * * * * * * * *
*
* EXTERNALS:
*
* .PGOTO DEF
* .PLJSR REF
* .PEXCEPT REF
* .PUNMP REF
*
*
***************************************************************************
*
XDEF .PGOTO
XREF .PLJSR
XREF .PEXCEPT
XREF .PUNMP
.PGOTO EQU * ENTRY POINT
*
* EXCEPTION DESCRIPTOR HANDLING
*
MOVE.L TOPEXCDS(A5),A1
WHILE.L #0 <NE> A1 AND.L A0 <GT> A1 DO.S
TSTOUT 'GOTO-EXCP',(A1),PEXCPDS+4(A1),TSTRTS3
MOVE.L PEXCPDS(A1),A1
ENDW
MOVE.L A1,TOPEXCDS(A5)
TSTOUT 'GOTO11',TOPEXCDS(A5),FUNC1(A5),TSTRTS3
*
* MAP DESCRIPTOR HANDLING
*
MOVE.L TMD(A5),A4
IF.L #0 <NE> A4 AND.L A0 <GT> A4 THEN.L
WHILE.L #0 <NE> A4 AND.L A0 <GT> A4 DO.S
BSR .PUNMP
MOVE.L TMD(A5),A4
ENDW
*
* REMAP THE TOP MAP DESCRIPTORS
*
MOVE.L A0,-(SP) SAVE A0
WHILE.L #0 <NE> A4 DO.L
TSTOUT 'GOTO12',(A4),PMD+4(A4),TSTRTS3
MOVE.L PTRADDR(A4),-(SP) SET UP KERNEL PARAMETERS
MOVE.L REQADDR(A4),-(SP)
MOVE.B MMUNO(A4),D0
EXT.W D0
EXT.L D0
MOVE.L D0,-(SP)
MOVE.L SP,D4
MOVEQ #12,D2
MOVE.L D0,-(SP) SAVE D0
MOVE.L #33,D5 MAP SEGMENT
TSTOUT 'GOTO21',(SP),16(SP),TSTRTS2
TRAP #7 KERNEL CALL
MOVE.L (SP)+,D0 RESTORE D0
ADD #12,SP RESET STACK POINTER
MOVEA.L PMD(A4),A4 A4:= NEXT MAP DESC
IF.L #0 <NE> A4 THEN.S
CMP.B MMUNO(A4),D0
BLE.S ENDREMAP
ENDI
ENDW
ENDREMAP EQU *
MOVE.L (SP)+,A0 RESTORE A0
LEA .PLJSR(PC),A3
ENDI
*
* PROCEDURE HANDLING
*
IF.L A0 <GT> A6 THEN.L
TSTOUT 'GOTO-TOPPROC',(A6),16(A6),TSTRTS3
MOVEA.L A6,A1 A1:= CURRENT PROCEDURE DESC
MOVE.L (A1),A2 A2:=NEXT PROC DESC:= DYNAMIC LINK
WHILE.L A0 <GT> A2 DO.L
TSTOUT 'GOTO-PROC1',(A2),16(A2),TSTRTS3
MOVE.L 8(A2),12(A1) CURRENT RETURN ADDR:= NEXT EXIT ADDR
MOVEA.L A2,A1
MOVEA.L (A1),A2
TSTOUT 'GOTO-PROC2',(A1),16(A1),TSTRTS3
ENDW
MOVE.L (SP)+,12(A1) CURRENT RETURN ADDR:= RETURN TO PASCAL
MOVE.L 8(A6),A2
TSTOUT 'GOTO31',(A6),(A0),TSTRTS3
JMP (A2) JUMP TO TOP PROCEDURES EXIT ADDR
ELSE.S
RTS
ENDI
END
«eof»