mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
Use CH11 address
Use the Chaosnet address reported by the CH11 device, rather than the statically defined one.
This commit is contained in:
parent
559f48fa57
commit
7d755dab01
@ -57,6 +57,13 @@ MXWIND==100 ;MAXIMUM WINDOW SIZE (8K WORDS)
|
||||
.SEE CH10P ;1 MEANS USE CH10 HARDWARE TO GET TO CHAOS NET
|
||||
.SEE CH11P ;1 MEANS USE UNIBUS CHAOSNET HARDWARE ON KS10
|
||||
|
||||
IFN CH11P,[
|
||||
;; BV: Read this from the CH11 at boot, see IORDI A,CAIMYN in SYSTEM;ITS
|
||||
MYCHDR: MYCHAD
|
||||
;; my subnet, constructed from the above
|
||||
MYCHSN: MYCHAD_-8
|
||||
]
|
||||
|
||||
;Internet address of my Chaosnet Interface
|
||||
.SEE IMPUS4 ; Should now be defined in CONFIG >
|
||||
;IMPUS4==<.BYTE 4 ? 0 ? .BYTE 8 ? 128. ? 31. ? .BYTE 16. ? MYCHAD>
|
||||
@ -318,6 +325,11 @@ CHASO4: SETZM CHSNBF(I)
|
||||
SETZM CHSIBC(I)
|
||||
MOVSI T,%CFOFF .SEE %CSCLS
|
||||
MOVEM T,CHSSTA(I)
|
||||
IFN CH11P,[
|
||||
;; BV: initialize our local address
|
||||
MOVE T,MYCHDR
|
||||
DPB T,[.BP (777774),CHSLCL(I)]
|
||||
]
|
||||
LDB TT,[$CHXUN+40000,,CHSLCL(I)]
|
||||
CAIE TT,CHXMUN ;INCREMENT THE UNIQUIZER
|
||||
AOSA TT
|
||||
@ -1261,7 +1273,8 @@ CHAPII: MOVE B,RECHDP ;SAVE HEADER FOR DEBUGGING IN RING BUFFER
|
||||
JUMPN D,CHABRT ;FLUSH, NOT SUPPORTED
|
||||
LDB D,[$CPKOP(A)] ;GET OPCODE
|
||||
LDB B,[$CPKDA(A)] ;CHECK DESTINATION
|
||||
CAIE B,MYCHAD ;IF FOR ME,
|
||||
IFN CH11P, CAME B,MYCHDR
|
||||
.ELSE CAIE B,MYCHAD ;IF FOR ME,
|
||||
SKIPN B ;OR FOR ME BY VIRTUE OF BROADCAST
|
||||
AOSA CHNPI ;ACCEPT IT
|
||||
JRST CHAPFW ;NOT ME, FORWARD
|
||||
@ -1472,6 +1485,11 @@ EXPUNGE FOO,BAR
|
||||
HRRI B,%CPKDT+2(A)
|
||||
BLT B,%CPKDT+7(A)
|
||||
MOVE B,[.BYTE 8 ? MYCHAD/400 ? 1 ? 4+IFN CH10P+CH11P,[10.] ? 0 ]
|
||||
IFN CH11P,[
|
||||
;; BV: plug in my actual subnet at the right place
|
||||
MOVE T,MYCHSN
|
||||
DPB T,[.BP (776000),B]
|
||||
]
|
||||
MOVEM B,%CPKDT+10(A)
|
||||
MOVEI B,%CPKDT+11(A)
|
||||
HRLI B,441000
|
||||
@ -1530,7 +1548,8 @@ CHIBRD: LDB T,[$CPKAN(A)] ;NUMBER OF BITMAP BYTES
|
||||
BLT D,(TT)
|
||||
SETZI TT,
|
||||
DPB TT,[$CPKAN(A)] ;ZERO THE ACK FIELD
|
||||
MOVEI TT,MYCHAD
|
||||
IFN CH11P,MOVE TT,MYCHDR
|
||||
.ELSE MOVEI TT,MYCHAD
|
||||
DPB TT,[$CPKDA(A)] ;PRETEND IT WAS FOR ME
|
||||
JRST CHIRFC ;AND HANDLE IT AS AN RFC
|
||||
|
||||
@ -2237,7 +2256,8 @@ CHXBK7: SETZM CHOSTA ;TRANSMITTER IDLE, LOOK FOR NEXT PACKET
|
||||
LDB T,[$CPKDN(A)] ;GET DESTINATION SUBNET
|
||||
HRRZ D,SBNRUT(T) ;GATEWAY TO THAT SUBNET
|
||||
CAIGE T,NSUBNT
|
||||
CAIN T,MYCHAD_-8 ;IF ON LOCAL CABLE
|
||||
IFN CH11P,CAMN T,MYCHSN
|
||||
.ELSE CAIN T,MYCHAD_-8 ;IF ON LOCAL CABLE
|
||||
LDB D,[$CPKDA(A)] ;GO DIRECT
|
||||
LSH D,16.+4
|
||||
DATAO CHX,D ;STORE HARDWARE DESTINATION ADDRESS
|
||||
@ -2469,7 +2489,8 @@ CHXXM6: JUMPGE H,CHXXM7 ;Jump if even packet length
|
||||
CHXXM7: LDB T,[$CPKDN(A)] ;Get destination subnet
|
||||
HRRZ D,SBNRUT(T) ;Gateway to that subnet
|
||||
CAIGE T,NSUBNT
|
||||
CAIN T,MYCHAD_-8 ;If on local cable,
|
||||
IFN CH11P,CAMN T,MYCHSN
|
||||
.ELSE CAIN T,MYCHAD_-8 ;If on local cable,
|
||||
LDB D,[$CPKDA(A)] ; go direct
|
||||
IOWRI D,CAIWBF ;Store hardware destination address
|
||||
IORDI T,CAIXMT ;Transmit packet
|
||||
@ -21648,6 +21648,17 @@ IFN CH11P,[
|
||||
XCTRI [IORDI A,CAIMYN]
|
||||
CAIA
|
||||
BUG HALT,[CHAOSNET INTERFACE NOT RESPONDING (CHECK THE BREAKER ON THE UNIBUS)]
|
||||
;; BV: save the address the interface has
|
||||
MOVEM A,MYCHDR
|
||||
;; and hack symbol table for backwards compatibility (PEEK, at least)
|
||||
MOVE B,[SQUOZE 0,MYCHAD]
|
||||
PUSHJ P,SYMLK ;clobbers A,B,C, skip returns with ptr in C if successful
|
||||
BUG HALT,[MYCHAD symbol not found]
|
||||
MOVE A,MYCHDR
|
||||
MOVEM A,(C)
|
||||
;; and separately, the subnet part
|
||||
LSH A,-8
|
||||
MOVEM A,MYCHSN
|
||||
] ;CH11P
|
||||
IFN CHAOSP,[ IFN T11CHP,[
|
||||
SKIPE TEN11F ;SET UP TEN-11 CHAOS NET INTERFACE PAGE
|
||||
Loading…
x
Reference in New Issue
Block a user