Trailing-Edge
-
PDP-10 Archives
-
AP-4171F-BM
-
uetp/lib/shippr.mac
There is 1 other file named shippr.mac in the archive. Click here to see a list.
TITLE SHIPPR
;COPYRIGHT (C) 1977 BY
;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
SEARCH MONSYM,MACSYM
.REQUIRE SYS:MACREL
SALL
; ACCUMULATOR DEFINITIONS
F=0
T1=1
T2=2
T3=3
T4=4
Q1=5
Q2=6
Q3=7
P1=10
P2=11
P3=12
P4=13
P5=14
P6=15
CX=16
P=17
CNTOK=5 ;NUMBER OF OUTSTANDING 'OK' CHECKS FOR INFERIOR
PDLEN=50 ;PUSH DOWN STACK POINTER
SAVLEN=100 ;STACK FOR SAVE AREAS
PGTSTR=30000 ;START OF SHARED IPCF BUFFER TRAFFIC AREA
; THIS MACRO GENERATES THE CORE TABLE AND A COUNT OF THE SHARE PAGES
; WHICH INCLUDES THE TABLE ITSELF.
;
DEFINE GENTAB(FROM,TO)<
PGCNT=<<TO-FROM>/1000>-3
.LOCPT==FROM+4000 ;WE DON'T WANT TO WIPE OUT SYMBOL TABLE (FOR DDT)
TBLPNT=<-PGCNT,,FROM>
TBLNUM=FROM/1000
AREANM=TBLNUM+4
TBLPNT
LOC FROM
REPEAT PGCNT,< EXP .LOCPT
.LOCPT=.LOCPT+1000>
RELOC>
; THIS MACRO SAVES THE ACS 1-4 IN STACK FROM P6
;
DEFINE SAVE<
PUSH P6,T1
PUSH P6,T2
PUSH P6,T3
PUSH P6,T4>
;
; THIS MACRO RESTORES TOP FOUR ITEMS ON P6 STACK
;
DEFINE RESTOR<
POP P6,T4
POP P6,T3
POP P6,T2
POP P6,T1>
PAGE
SUBTTL IPCF -INITIALIZATION
; INITIALIZE THE P REGISTER FOR PUSHJ POPJ
START: MOVEM T1,BOSSPG ;SAVE ADDRESS OF COMMON PAGE W/BOSS
MOVE P,[-PDLEN,,PDL] ;PUSH DOWN STACK POINTER
MOVE P6,[-SAVLEN,,SAVBUF] ;PUSH DOWN STACK POINTER
;INITIALIZE PAGE TABLE POINTERS
;
CALL PGINIT ;GO INITIALIZE CORE TABLE AND POINTERS
;
; INITIALIZE JFN'S
;
HRROI T2,[ASCIZ/RUN.LOG/] ;GET A JFN FOR THE RUN LOG
MOVE T1,[GJ%FOU+GJ%NEW+GJ%SHT] ;SHORT,NEW FILE,NEW GEN NUMBER
GTJFN ;GET THE JFN
JRST [HRROI T1,[ASCIZ/?ERROR IN GTJFN FOR RUN.LOG/]
CALL ERABRT] ;GO WRITE IT OUT AND ABORT
HRRZM T1,RUNJFN ;SAVE THE JFN FOR RUN.LOG
HRROI T2,[ASCIZ/EXCEPTION.LOG/] ;GET A JFN FOR THE EXCEPTION LOG
MOVE T1,[GJ%FOU+GJ%NEW+GJ%SHT] ;SHORT,NEW FILE,NEW GEN NUMBER
GTJFN ;GET THE JFN
JRST [HRROI T1,[ASCIZ/?ERROR IN GTJFN FOR EXCEPTION.LOG/]
CALL ERABRT] ;GO WRITE IT OUT AND ABORT
HRRZM T1,EXCJFN ;SAVE THE JFN FOR EXCEPTION.LOG
CALL OPEN ;GO OPEN LOG FILES
HRRZ T1,RUNJFN ;GET THE JFN FOR RUN.LOG
HLL T1,[ FLD (.FBBYV,CF%DSP)] ;WE WANT TO INSURE GENERATION'S
MOVX T2,FB%RET ; COUNT IS KEPT AT
MOVX T3,<FLD (4,FB%RET)> ; 4
CHFDB ;GO CHANGE FDB FOR RETENTION COUNT
ERJMP [HRROI T1,[ASCIZ/?ERROR IN CHANGING FDB FOR RUN.LOG/]
CALL ERABRT] ;TYPE MESSAGE AND ABORT
HRRZ T1,EXCJFN ;GET THE JFN FOR EXCEPTION.LOG
HLL T1,[FLD (.FBBYV,CF%DSP)] ;WE WANT TO INSURE GENERATION'S
MOVX T2,FB%RET ; COUNT IS KEPT AT
MOVX T3,<FLD (4,FB%RET)> ; 4
CHFDB ;GO CHANGE FDB FOR RETENTION COUNT
ERJMP [HRROI T1,[ASCIZ/?ERROR IN CHANGING FDB FOR EXCEPTION.LOG/]
CALL ERABRT] ;TYPE MESSAGE AND ABORT
;ACTIVATE ALL THE CHANNELS
;
MOVEI T1,.FHSLF ;ACTIVATE OUR CHANNELS
MOVE T2,[LEVTAB,,CHNTAB] ;CHANNEL TABLES
SIR ;TELL SYSTEM ABOUT THEM
EIR ;ENABLE CHANNEL SYSTEM
MOVE T2,[1B19!1B23!1B25!1B26!1B28!1B29!1B31] ;WE NEED ALL THESE
AIC ;ACTIVATE THE CHANNELS
;
; NOW START UP IPCF FORK
;
CALL STRCVE ;CALL FORK STARTER
WAIT ;WAIT FOR IPCF TRAFFIC
SUBTTL ROUTINE TO WRITE IPCF TRAFFIC TO LOGS
;THIS ROUTINE GETS CALLED VIA AN INTERRUPT ON CHANNEL 28. IT IIC'S ITSELF
; ON CHANNEL 31 TO GIVE BOSS PAGES.
;
WRPAGE: SKIPE PNCMOD ;SKIP IF WE ARE NOT IN PANIC MODE
DEBRK