|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 1553 (0x611) Types: TextFile Names: »pktd.mac«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦349c9a24c⟧ »EurOpenD3/network/ka9q/pktd.tar.Z« └─⟦613ecc654⟧ └─⟦this⟧ »./src/pktd.mac«
; @(#)pktd.mac.u 1.1 6/20/89\r ;\r ; Copyright (c) 1989 by Sun Microsystems, Inc.\r ;\r \r save_regs macro\r push_f\r push es\r push ds\r push ax\r push bx\r push cx\r push dx\r push bp\r push di\r push si\r endm; save_regs\r restore_regs macro\r pop si\r pop di\r pop bp\r pop dx\r pop cx\r pop bx\r pop ax\r pop ds\r pop es\r pop_f\r endm; restore_regs\r save_es_ax macro\r push es\r push ax\r endm; save_es_ax\r \r restore_es_ax macro\r pop ax\r pop es\r endm; restore_es_ax\r \r save_ax macro\r push ax\r endm; save_ax\r restore_ax macro\r pop ax\r endm; restore_ax\r push_f macro\r pushf\r endm; push_f\r ; some 286's have a bug which allows an interrupt to occur during a\r ; popf instruction even when going from disabled state to disabled\r ; state. using this popff macro avoids this problem.\r pop_f macro\r ifdef popfbug\r push cs\r call iretins\r else\r popf\r endif\r endm\r \r disable_others macro flag\r in al,int_ctrmask ; get interrupt mask\r jmp $+2\r ifnb <flag>\r push ax ; save mask\r endif; <flag>\r ifb <flag>\r mov ah,al ; save in ah\r endif; !<flag>\r or al,not_intmask ; mask all but ours\r out int_ctrmask,al ; set mask\r jmp $+2\r endm; disable_others\r restore_int macro flag\r ifnb <flag>\r pop ax ; get saved mask\r endif; <flag>\r ifb <flag>\r \r mov al,ah ; get saved mask\r endif; !<flag>\r out int_ctrmask,al ; reinstate it\r jmp $+2\r endm; restore_int\r \r \r ; manifest constants\r maxpacket equ 1514 ; max packet size\r minpacket equ 64 ; min eth packet size\r \r \r