|
|
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: 8320 (0x2080)
Types: TextFile
Names: »MACEOSM.SA«
└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »MACEOSM.SA«
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »MACEOSM.SA«
*FILE: MACEOS INCLUDED
*CONTAINS VIR'S MACROES FOR KERNEL OPERATIONS
NOLIST
FML EQU 0<<14
TMP EQU 1<<14
LOC EQU 2<<14
IN EQU 1
OUT EQU 2
INOUT EQU 3
*
* ENTRY DEFINITIONS FOR KERNEL OBJECTS
*
* ALLOC
NEW_OBJ EQU 1
* SCHEDULER
NEW_PROC EQU 1
NEW_SCHED EQU 2
NEW_GATE EQU 3
NEW_CHAN EQU 4
* GATE
LOCK EQU 1
OPEN EQU 2
NEW_COND EQU 3
RESIDENT EQU 4 ;ONLY DRIVER GATES
* CONDITION
WAIT EQU 1
SIGNAL EQU 2
INT MACRO
MOVE.L Ø1,-(A7)
ENDM
SIZE MACRO
MOVE.W Ø2,-(A7)
MOVE.L Ø1,-(A7)
ENDM
ACTARG MACRO
IFLE NARG-1 PRIVAT TYPE OR NO ACTUAL
Ø1
MEXIT
ENDC
IFEQ NARG-2 <IO,PTR>
MOVE.L Ø2,-(A7)
MOVE.W #Ø1,-(A7)
CLR.L -(A7)
CLR.L -(A7)
MEXIT
ENDC
IFEQ NARG-3 <IO,PTR1,PTR2>
MOVE.L Ø3,-(A7)
MOVE.L Ø2,-2(A7)
MOVE.W #Ø1,-(A7)
CLR.L -(A7)
CLR.L -(A7)
MEXIT
ENDC
IFEQ NARG-4 <IO,PTR,FIR,LEN>
MOVE.L Ø2,-(A7)
MOVE.W #Ø1,-(A7)
MOVE.L Ø3,-(A7)
MOVE.L Ø4,-(A7)
MEXIT
ENDC
IFEQ NARG-5 <IO,PTR1,PTR2,FIR,LEN>
MOVE.L Ø3,-(A7)
MOVE.L Ø2,-2(A7)
MOVE.W #Ø1,-(A7)
MOVE.L Ø4,-(A7)
MOVE.L Ø5,-(A7)
MEXIT
ENDC
FAIL 0
ENDM
PTRARG MACRO
IFEQ NARG-1
MOVE.L Ø1,-(A7)
MEXIT
ENDC
IFEQ NARG-2
MOVE.L Ø2,-(A7)
MOVE.L Ø1,-2(A7)
MEXIT
ENDC
FAIL 0
ENDM
ACTUALS MACRO
IFLT NARG-1
MEXIT
ENDC
ACTARG Ø1
ACTARG Ø2
ACTARG Ø3
ACTARG Ø4
ACTARG Ø5
IFGT NARG-5
FAIL 0
ENDC
ENDM
VALDATA MACRO
IFLT NARG-1
MEXIT
ENDC
SUBQ.L #2,A7
MOVE.L A7,D6
Ø1
SUB.L A7,D6
MOVE.W D6,(A7,D6.W)
IFLT NARG-2
MEXIT
ENDC
SUBQ.L #2,A7
MOVE.L A7,D6
Ø2
SUB.L A7,D6
MOVE.W D6,(A7,D6.W)
IFLT NARG-3
MEXIT
ENDC
SUBQ.L #2,A7
MOVE.L A7,D6
Ø3
SUB.L A7,D6
MOVE.W D6,(A7,D6.W)
IFLT NARG-4
MEXIT
ENDC
SUBQ.L #2,A7
MOVE.L A7,D6
Ø4
SUB.L A7,D6
MOVE.W D6,(A7,D6.W)
IFLT NARG-5
MEXIT
ENDC
SUBQ.L #2,A7
MOVE.L A7,D6
Ø5
SUB.L A7,D6
MOVE.W D6,(A7,D6.W)
IFGT NARG-5
FAIL 0
ENDC
ENDM
VALSEGM MACRO D6=TOP_ARG, D7=TOP_CALL, A5=FIRST OF STACK
IF.L D6 <NE> D7 THEN.S DO NOT APPEAR IN LISTING???
MOVE.L #TMP+1,-(A7)
ELSE.S
CLR.L -(A7)
ENDI
MOVE.W #3,-(A7)
MOVE.L A5,-(A7)
SUB.L D6,(A7)
NEG.L (A7)
MOVE.L D7,-(A7)
SUB.L D6,(A7)
ENDM
KNELFUNC MACRO D6=TOP_ARG
MOVE.L A7,D4
MOVE.L D6,D2
SUB.L D4,D2
MOVEQ.L #Ø1,D5
ENDM
KNELENTR MACRO D6=TOP_ARG
KNELFUNC Ø1
MOVE.L D6,-(A7)
MOVE.L (A7,D2.L),D6 TESTOUTPUT
MOVE.L -4(A7,D2.L),D7 TESTOUTPUT
TRAP #7
MOVE.L (A7),A7
ENDM
OBJ_CALL MACRO
* TESTOUT <OBJ_CALL>
MOVE.L A7,D7 D7:=TOP_CALL
VALDATA Ø4
MOVE.L A7,D6 D6:=LOW_VAL=TOP_ARG
PTRARG Ø1
PTRARG Ø2
VALSEGM
ACTUALS Ø3
KNELFUNC 0 D2=LENGTH
MOVE.L D7,-(A7)
MOVE.L (A7,D2.L),D6 TESTOUTPUT
MOVE.L -4(A7,D2.L),D7 TESTOUTPUT
TRAP #7
MOVE.L (A7),A7
ENDM
DECL_PROC MACRO
* TESTOUT <DECL_PROC>
MOVE.L A7,D7 D7:=TOP_CALL
VALDATA Ø4
MOVE.L A7,D6 D6:=LOW_VAL=TOP_ARG
PTRARG Ø1
PTRARG Ø2
VALSEGM
ACTUALS Ø3
KNELFUNC 19 D2=LENGTH
MOVE.L D7,-(A7)
MOVE.L (A7,D2.L),D6 TESTOUTPUT
MOVE.L -4(A7,D2.L),D7 TESTOUTPUT
TRAP #7
MOVE.L (A7),A7
ENDM
DEALLOC MACRO
* TESTOUT <DEALLOC>
MOVE.L A7,D7 D7:=TOP_CALL
VALDATA Ø4
MOVE.L A7,D6 D6:=LOW_VAL=TOP_ARG
PTRARG Ø1
PTRARG Ø2
VALSEGM
ACTUALS Ø3
KNELFUNC 7 D2=LENGTH
MOVE.L D7,-(A7)
MOVE.L (A7,D2.L),D6 TESTOUTPUT
MOVE.L -4(A7,D2.L),D7 TESTOUTPUT
TRAP #7
MOVE.L (A7),A7
ENDM
OBJ_RETURN MACRO
* TESTOUT <OBJ_RETURN>
MOVEQ.L #1,D5
TRAP #7
ENDM
COPY MACRO
* TESTOUT <COPY>
MOVE.L A7,D6
PTRARG Ø1
PTRARG Ø2
KNELENTR 13
ENDM
NEW_SEG MACRO
* TESTOUT <NEW_SEG>
MOVE.L A7,D6
PTRARG Ø1
PTRARG Ø2
KNELENTR 5
ENDM
SPEED_UP MACRO
* TESTOUT <SPEED_UP>
MOVE.L A7,D6
PTRARG Ø1
KNELENTR 22
ENDM
PROPAGATE MACRO
* TESTOUT <PROPAGATE>
MOVE.L A7,D6
PTRARG Ø1
KNELENTR 23
ENDM
DECL_ENV MACRO OWNER,MANAGER,ENV,#LOCALS,TERMENTRY,DEALLOCSTACK,MAXSTACK
* TESTOUT <DECL_ENV>
IFNE NARG-7
FAIL 26
MEXIT
ENDC
MOVE.L A7,D6
PTRARG Ø1
PTRARG Ø2
PTRARG Ø3
INT Ø4
INT Ø5
SIZE Ø6
SIZE Ø7
KNELENTR 26
ENDM
DECL_SEG MACRO OWNER,#BYTES
* TESTOUT <DECL_SEG>
IFNE NARG-2
FAIL 5
MEXIT
ENDC
MOVE.L A7,D6
PTRARG Ø1
INT Ø2
KNELENTR 3
ENDM
NEW_SEGM MACRO OWNER,#BYTES
* TESTOUT <NEW_SEGM>
IFNE NARG-2
FAIL 5
MEXIT
ENDC
MOVE.L A7,D6
PTRARG Ø1
INT Ø2
KNELENTR 5
ENDM
MAP_SEGM MACRO SEGMPTR,PREFADDR,MMU#
* TESTOUT <MAP_SEGM>
IFNE NARG-3
FAIL 33
MEXIT
ENDC
MOVE.L A7,D6
PTRARG Ø1
INT Ø2
INT Ø3
KNELENTR 33
* RETURN: A1= ACTUAL ADDRESS, D1/D3 = !
ENDM
DECL_SUB MACRO OWNER,SUBSEGMSPEC
* TESTOUT <DECL_SUB>
IFNE NARG-2
FAIL 6
MEXIT
ENDC
MOVE.L A7,D6
PTRARG Ø1
ACTARG Ø2 ;SAME AS SUBSEGMENT
KNELENTR 6
ENDM
IO_BEGIN MACRO BUF, ÆVECT#Å
* TESTOUT <IO_BEGIN>
MOVE.L A7,D6
PTRARG Ø1
IFGT NARG-1
INT Ø2
ENDC
KNELENTR 36
* RETURN: A1=ABSADDR
ENDM
IO_END MACRO BUF,ÆVECT#Å
* TESTOUT <IO_END>
MOVE.L A7,D6
PTRARG Ø1
IFGT NARG-1
INT Ø2
ENDC
KNELENTR 37
ENDM
ABS_ADDR MACRO PTR,ÆVECT#Å
* TESTOUT <ABS_ADDR>
MOVE.L A7,D6
PTRARG Ø1
IFGT NARG-1
INT Ø2
ENDC
KNELENTR 38
* RETURN: A1=ABSADDR
ENDM
INT_SIGN MACRO CONDITION,ÆVECT#Å
* TESTOUT <INT_SIGN>
MOVE.L A7,D6
PTRARG Ø1
IFGT NARG-1
INT Ø2
ENDC
KNELENTR 39
ENDM
LIST
«eof»