.TITLE XDTSYS - LOADABLE XDT SYSTEM TEMPLATE .SBTTL XDTSYS - TITLE PAGE .IDENT /V01.01/ ; ; ************************************************************************ ; * ; THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS ONLY. DIGITAL EQUIPMENT * ; COMPUTER USER'S SOCIETY, DIGITAL EQUIPMENT CORPORATION, MONSANTO, AND * ; THE AUTHOR DISCLAIM ALL WARRANTIES ON THE PROGRAM, INCLUDING WITHOUT * ; LIMITATION, ALL IMPLIED WARRANTIES OF MERCHANTABLITY AND FITNESS. * ; * ; FULL PERMISSION AND CONSENT IS HEREBY GIVEN TO DECUS AND TO THE DECUS * ; SPECIAL INTEREST GROUPS TO REPRODUCE, DISTRIBUTE, AND PUBLISH AND * ; PERMIT OTHERS TO REPRODUCE IN WHOLE OR IN PART, IN ANY FORM AND * ; WITHOUT RESTRICTION, THIS PROGRAM AND ANY INFORMATION RELATING TO IT. * ; * ; ************************************************************************ ; ; THIS MODULES CONTAINS THE CODE TO BE LOADED INTO THE SYSTEM POOL BUFFER. ; ; VERSION: 01.01 ; ; AUTHOR: R.W. STAMERJOHN MAPC 10-MAR-80 ; ; MODIFICATION HISTORY: ; ; V01.00 RWS 10-MAR-80 INITIAL VERSION ; ; V01.01 RWS 28-OCT-80 REMOVE GETVAL, PUTVAL .SBTTL XDTSYS - DECLARATIONS .DSABL GBL ; ; MACRO LIBRARY CALLS: ; ; SYMBOLICS DEFINITIONS (EXEMC.MLB). ; .MCALL HWDDF$ ;DEFINE HWD OFFSETS HWDDF$ .MCALL PCBDF$ ;DEFINE PCB OFFSETS PCBDF$ ; ; GLOBAL DECLARATIONS: ; .GLOBL SYSBEG ;START OF TEMPLATE .GLOBL SYSSIZ ;SIZE OF TEMPLATE .GLOBL STKADR ;ADDRESS OF TEMP STACK .GLOBL STKSAV ;ADDRESS OF SAVED STACK .GLOBL XDTPCB ;START OF PCB .GLOBL XDTAPR ;XDT APR6 VALUE .GLOBL XDTPDR ;XDT PDR6 VALUE .GLOBL TRP004 ;TRAP 004 .GLOBL TRP010 ;TRAP 010 (ILLEGAL INSTRUCTION) .GLOBL TRP014 ;TRAP 014 (BPT OR TRACE TRAP) .GLOBL TRP020 ;TRAP 020 (IOT INSTRUCTION) .GLOBL TRP030 ;TRAP 030 (EMT INSTRUCTION) .GLOBL TRP250 ;TRAP 250 (SEGMENATION FAULT) .GLOBL TRPERR ;XDT ERR TRAP .GLOBL TRPDCD ;XDT DCD TRAP .GLOBL TRPTYP ;XDT TYP TRAP ; ; GLOBAL REFERENCES: ; ; ; XDT INTERRUPT ENTRIES. ; .GLOBL BPTI ;XDT BPT INTERRUPT ENTRY .GLOBL ILLI ;XDT ILLEGAL INSTRUCTION ENTRY .GLOBL IOTX ;XDT IOT INTERRUPT ENTRY .GLOBL NEMT ;XDT EMT INTERRUPT ENTRY .GLOBL ODDA ;XDT ODD ADDRESS ENTRY .GLOBL SGMT ;XDT SEGMENTATION FAULT ENTRY ; ; XDT INTERNAL INTERRUPT ENTRIES. ; .GLOBL ERR ;UNDEFINED ERR .GLOBL DCD ;DECODE LINE .GLOBL TYPE ;TYPE CHARACTER ; ; EXECUTIVE ENTRIES ; .GLOBL $CRALT ;(CRASH) CRASH SYSTEM .SBTTL XDTSYS - SYSTEM POOL TEMPLATE .PSECT $$$XDP,RW,D,LCL,REL,CON ; ;+ ; THE FOLLOWING IS THE TEMPLATE FOR THE SYSTEM POOL INTERFACE TO THE ; LOADABLE VERSION OF XDT. THIS CODE INCLUDES THE PCB USED FOR THE XDT ; COMMON AREA AND THE MAPPING ROUTINES TO THE REGION. THIS SECTION MUST ; BE POSITION INDEPENDENT. ;- ; ; DEFINE START OF TEMPLATE ; SYSBEG:: ;REF. LABEL ; ; DEFINE PCB PARTITION TEMPLATE. ; XDTPCB:: ;REF. LABEL .WORD 0 ;(P.LNK ) LINK TO NEXT PARTITION .BYTE 0 ;(P.PRI ) PARTITION PRIORITY .BYTE 0 ;(P.IOC ) PARTITION I/O COUNT .RAD50 /$$$XDT/ ;(P.NAM ) PARTITION NAME .WORD 0 ;(P.SUB ) POINTER TO NEXT SUBPARTITION .WORD 0 ;(P.MAIN) POINTER TO MAIN PARTITION .WORD 0 ;(P.REL ) STARTING ADDRESS OF PARTITION .WORD 0 ;(P.BLKS) SIZE OF PARTITION (32W) .WORD 0 ;(P.WAIT) PARTITION WAIT QUEUE .WORD 0 ;(P.SWSZ) PARTITION SWAP SIZE .WORD 0 ;(P.BUSY) PARTITION BUSY FLAGS .WORD 0 ;(P.TCB ) TCB ADDRESS OF OWNER TASK .WORD PS.NSF!PS.COM!PS.SYS ;(P.STAT) PARTITION STATUS FLAGS .WORD 0 ;(P.HDR ) POINTER TO TASK HEADER .IF DF P$$LAS .WORD 177777 ;(P.PRO ) PROTECTION WORD .WORD 0 ;(P.ATT ) ATTACHMENT QUEUE HEADER .WORD 0 ; .ENDC ; ; DEFINE SAVE LOCATION FOR APR6. ; .BLKW 4 ;DEFINE TEMPORAY STACK STKADR::.WORD . ;DEFINE START OF STACK STKSAV::.WORD 0 ;DEFINE STACK SAVE LOCATION XDTAPR::.WORD 0 ;XDT APR6 PAR XDTPDR::.WORD 0 ;XDT APR6 PDR SAVAPR: .WORD 0 ;SAVED APR6 SAVPDR: .WORD 0 ;SAVED PDR6 ; ; DEFINE XDT MAPPING ROUTINES. ; MAPSAV: MOV @#KISAR6,SAVAPR ;SAVE APR6 PAR MOV @#KISDR6,SAVPDR ;SAVE APR6 PDR MOV XDTAPR,@#KISAR6 ;MAP XDT MOV XDTPDR,@#KISDR6 ;MAP XDT RETURN ;RETURN ; ; DEFINE INTERRUPT MAPPING ROUTINES. ; TRP004::CALL MAPSAV ;MAP XDT JMP @#ODDA ;JUMP TO XDT TRP010::CALL MAPSAV ;MAP XDT JMP @#ILLI ;JUMP TO XDT TRP014::CALL MAPSAV ;MAP XDT JMP @#BPTI ;JUMP TO XDT TRP020::CALL MAPSAV ;MAP XDT JMP @#IOTX ;JUMP TO XDT TRP030::CALL MAPSAV ;MAP XDT JMP @#NEMT ;JUMP TO XDT TRP250::CALL MAPSAV ;MAP XDT JMP @#SGMT ;JUMP TO XDT ; ; DEFINE XDT INTERRUPT MAPPING ROUTINES. ; TRPERR::MOV XDTAPR,@#KISAR6 ;MAP XDT MOV XDTPDR,@#KISDR6 ; JMP @#ERR ;JUMP TO XDT TRPDCD::MOV XDTAPR,@#KISAR6 ;MAP XDT MOV XDTPDR,@#KISDR6 ; JMP @#DCD ;JUMP TO XDT TRPTYP::MOV XDTAPR,@#KISAR6 ;MAP XDT MOV XDTPDR,@#KISDR6 ; JMP @#TYPE ;JUMP TO XDT ; ; DEFINE XDT RETURN ROUTINES. ; EXERTN::MOV SAVAPR,@#KISAR6 ;RESTORE MAPPING MOV SAVPDR,@#KISDR6 ; RTS R5 ;RETURN TO EXECUTIVE RTNRTN::MOV (SP)+,1000$ ;SET RETURN INSTRUCTION MOV SAVAPR,@#KISAR6 ;RESTORE MAPPING MOV SAVPDR,@#KISDR6 ; 1000$: 0 ;AND EXECUTE IT CRSRTN::MOV SAVAPR,@#KISAR6 ;RESTORE MAPPING MOV SAVPDR,@#KISDR6 ; JMP @#$CRALT ;CRASH SYSTEM SYSSIZ == .-SYSBEG ; ; DEFINE PSECT USED TO PROPERLY POSITION XDT CODE. ; .PSECT $$$XDR,RW,D,LCL,REL,CON .END