Первая попытка помучить DELQA не через драйвер.
Заодно RSXLIB пригодился
Код:.TITLE NQT .IDENT /V01.00/ ;DEVICE REGISTER AND VECTOR DEFINITIONS QNREG == 174440 ;DEVICE REGISTER ADDRESS QNVEC == 120 ;DEVICE VECTOR ADDRESS ;DEVICE REGISTER OFFSET DEFINITIONS QN$SAR == 0 ;STATION ADDRESS PROM QN$RAL == 4 ;RECEIVER BDL ADDRESS LO QN$RAH == 6 ;RECEIVER BDL ADDRESS HI QN$TAL == 10 ;TRANSMIT BDL ADDRESS LO QN$TAH == 12 ;TRANSMIT BDL ADDRESS HI QN$VEC == 14 ;VECTOR ADDRESS QN$CSR == 16 ;CONTROL/STATUS REGISTER ;CONTROL/STATUS REGISTER BIT DEFINITIONS CS.RI == 100000 ;RECEIVE INTERRUPT REQUEST CS.CA == 20000 ;CARRIER CS.OK == 10000 ;FUSE OK CS.SE == 2000 ;SANITY TIMER ENABLE CS.EL == 1000 ;EXTERNAL LOOPBACK ENABLE CS.ILD == 400 ;INTERNAL LOOPBACK DISABLE CS.XI == 200 ;TRANSMIT INTERRUPT REQUEST CS.IE == 100 ;INTERRUPT ENABLE CS.RLI == 40 ;RECEIVE LIST INVALID CS.XLI == 20 ;TRANSMIT LIST INVALID CS.BD == 10 ;BOOT/DIAGNOSTIC ROM DUMP CS.NXM == 4 ;NON-EXISTENT MEMORY INTERRUPT CS.SR == 2 ;SOFTWARE RESET CS.REN == 1 ;RECEIVER ENABLE ;VECTOR REGISTER BIT DEFINITIONS VC.MS == 100000 ;MODE SELECT (0 = QNA, 1 = LQA) VC.OS == 40000 ;REMOTE BOOT OPTION SWITCH VC.RS == 20000 ;REQUEST SELF-TEST VC.SSM == 16000 ;SELF-TEST STATUS MASK VC.IVM == 1774 ;INTERRUPT VECTOR MASK VC.ID == 1 ;IDENTIFY TEST BIT (Q = QNA, 1 = LQA) ;BUFFER DESCRIPTOR LIST OFFSETS BD.FLG == 0 ;FLAG BD.ADH == 2 ;ADDRESS DESCRIPTOR BITS (HI-ORDER) BD.ADL == 4 ;ADDRESS DESCRIPTOR BITS (LO-ORDER) BD.LEN == 6 ;BUFFER LENGTH BD.SW1 == 10 ;STATUS WORD 1 BD.SW2 == 12 ;STATUS WORD 2 BD.ESZ == 14 ;SIZE OF BUFFER DESCRIPTOR ;FLAG WORD DEFINITIONS FL.INI == 100000 ;INITIALIZATION VALUE FL.USE == 40000 ;DEQNA IS USING THE BUFFER ;ADDRESS DESCRIPTOR BIT DEFINITIONS AH.VLD == 100000 ;DESCRIPTOR IS VALIED AH.CHN == 40000 ;CHAIN DESCRIPTOR AH.EOM == 20000 ;END OF MESSAGE (XMIT ONLY) AH.SET == 10000 ;SETUP (XMIT ONLY) AH.TER == 200 ;LO BYTE ONLY TERMINATION (XMIT ONLY) AH.STA == 100 ;HI BYTE ONLY START (XMIT ONLY) AH.HOM == 77 ;HI-ORDER ADDRESS MASK ;STATUS WORD 1 BIT DEFINITIONS S1.LN == 100000 ;LAST/NOT S1.ERU == 40000 ;ERROR/USED ; FOR TRANSMIT S1.LOC == 10000 ;LOSS OF CARRIER S1.NOC == 4000 ;NO CARRIER S1.STE == 2000 ;SANITY TIMER WAS ENABLED AT POWER-UP S1.ABO == 1000 ;TRANSMISSION WAS ABORTED S1.FAI == 400 ;HEARTBEAT COLLISION CHECK FAILURE S1.CCM == 360 ;COLLISION COUNT MASK ; FOR RECEIVE S1.ESE == 20000 ;SETUP, ELOOP, IELOOP PACKET S1.DIS == 10000 ;DISCARD (OR OVF, CRCERR, SHORT) S1.RNT == 4000 ;PACKET IS RUNT S1.RBL == 3400 ;RECEIVE BUFFER LENGTH S1.FE == 4 ;FRAMING ERROR S1.CRC == 2 ;CRC ERROR S1.OV == 1 ;OVERFLOW .MCALL .DEVICE,.EXIT,.PRINT ;SYSTEM MACRO CALLS .PSECT DATA,D,RW DESC:: .WORD 0 ;FLAG WORD .WORD AH.VLD!AH.EOM ;DESCRIPTOR BITS .WORD BUFF ;ADDRESS OF TRANSMIT BUFFER .WORD -WCNT ;2S COMP WORD COUNT .WORD 0,0 ;STATUS WORDS .WORD 0 ;FLAG WORD .WORD 0 ;DESCRIPTOR BITS .WORD 0,0 ;DUMMY BUFFER ADDRESS, LENGTH BUFF:: .BYTE -1,-1,-1,-1,-1,-1 ;DESTINATION ADDRESS ADDR:: .BYTE 0,0,0,0,0,0 ;SOURCE ADDRESS .WORD 123456 ;PROTOCOL .REPT 32. .BYTE 252,125 ;DATA .ENDR WCNT == <.-BUFF>/2 AREA: .BLKW 2 ;EMT AREA LIST: .WORD QNREG+QN$CSR,CS.SR ;DEVICE LIST .WORD QNREG+QN$CSR,0 ; .WORD 0 ; .PSECT CODE,I,RO START:: .DEVICE #AREA,#LIST ;RESET DEVICE ON EXIT MOV #QNREG,R5 ;SET DEVICE REGISTER BIS #CS.SR,QN$CSR(R5) ;PERFORM SOFTWARE RESET BIC #CS.SR,QN$CSR(R5) ; MOV R5,R0 ;COPY SOURCE ADDRESS TO PACKET MOV #ADDR,R1 ; MOV #6,R2 ; 10$: MOV (R0)+,-(SP) ; MOVB (SP)+,(R1)+ ; SOB R2,10$ ; BIS #CS.ILD,QN$CSR(R5) ;DISABLE INTERNAL LOOPBACK MOV #DESC,QN$TAL(R5) ;SET BDL ADDRESS CLR QN$TAH(R5) ;START THE TRANSMISSION 20$: TSTB QN$CSR(R5) ;TRANMISSION DONE? BPL 20$ ;NO BIC #CS.RI,QN$CSR(R5) ;RESET XI (BY WRITING 1 TO IT) MOV #BUFF,R0 ;SET OUTPUT BUFFER ADDRESS MOV #FMTS,R1 ;SET FORMAT STRING MOV #DESC,R2 ;SET ARGUMENT BLOCK CALL $EDMSG ;FORMAT OUTPUT STRING CLRB @R0 ;MAKE IT ASCIZ .PRINT #BUFF ;PRINT DESCRIPTOR DATA .EXIT ;EXIT .PSECT RODATA,D,RO FMTS:: .ASCII /FLAG: %P%N/ .ASCII /BITS: %P%N/ .ASCII /BUFF: %P%N/ .ASCII /WCNT: %P%N/ .ASCII /STAT: %P %P/ .BYTE 0 .END STARTКод:.RU NQT FLAG: 177777 BITS: 120000 BUFF: 001024 WCNT: 177731 STAT: 020010 000002 .Код:pdp-11:/home/form# tcpdump -pni re0 ether src 08:00:2b:31:47:b4 tcpdump: listening on re0, link-type EN10MB 00:09:55.518540 08:00:2b:31:47:b4 ff:ff:ff:ff:ff:ff 2ea7 78: aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55



Ответить с цитированием

