Commit Graph

15174 Commits

Author SHA1 Message Date
thorpej d94f02f9fd Ok, now we _REALLY_ have Pyxis recognition correct. There are two systypes
that can have Pyxis: EB164 (AlphaPC164LX and AlphaPC164SX) and DEC_550 (Miata),
and these systypes/variations _always_ have Pyxis.
1998-06-03 23:16:55 +00:00
thorpej 44605ba506 Define a bunch more system variations. 1998-06-03 23:07:38 +00:00
pk 062294cc8c Magma parallel port ioctls per Iain Hibbert. 1998-06-03 22:40:00 +00:00
pk 87fe4d9ea1 Update from Iain on the parallel port stuff. 1998-06-03 22:38:31 +00:00
thorpej 15c52040a5 Define the ALT_MEM big in the CIA revision register. 1998-06-03 22:19:08 +00:00
thorpej f8acb6d6fa Sync w/ i386 port:
Eliminate some needless indirection through ISA DMA front-end functions.
1998-06-03 21:55:26 +00:00
thorpej 52450409d6 Sync w/ i386 port:
Implement bounce buffers for mbufs.

Also, correct copyright snafus, and a forgot-o left over from a commit
I made yesterday.
1998-06-03 21:52:36 +00:00
thorpej 6d29690288 Implement bounce buffers for mbufs. 1998-06-03 21:50:48 +00:00
mjacob 23a5420f99 turn on Essential HIPPI for this configuration 1998-06-03 21:17:52 +00:00
mjacob 9f5797ac1d turn on Essential HIPPI for these configurations 1998-06-03 21:16:28 +00:00
thorpej d6041754c2 Allow the DMA tag to specify a boundary contraint. If the device has a
more strict boundary, the map will use it, otherwise the map will inherit
the tag's, unless the tag's constraint is 0 (no boundary constraint).
1998-06-03 18:25:53 +00:00
frueauf 554cce1e94 Remove double "options GATEWAY" entry. 1998-06-03 10:03:25 +00:00
thorpej 28486ff301 Remove the _cookie member of the DMA tag; it's not used by anything. (This
was already done to the i386 port.)
1998-06-03 06:47:41 +00:00
thorpej 7b37a276e2 Sync w/ i386 port:
Optimize the ISA DMA map load somewhat; don't traverse the buffer twice.
Instead, just attempt to do a normal load first.  If we exceed the bounce
threshold or the number of segments, then we bounce the transfer.
1998-06-03 06:43:04 +00:00
thorpej 6ffa35b390 Sync w/ i386 port:
When loading a DMA map, if the page's physical address exceeds the bounce
threshold, return an error to the caller (the caller will attempt to
bounce the transfer).
1998-06-03 06:41:51 +00:00
thorpej b5c2ecc231 Sync w/ i386 port:
Add a `bounce threshold' to the i386 DMA tag.
1998-06-03 06:40:45 +00:00
thorpej 051c391187 Optimize the ISA DMA map load somewhat; don't traverse the buffer twice.
Instead, just attempt to do a normal load first.  If we exceed the bounce
threshold or the number of segments, then we bounce the transfer.
1998-06-03 06:37:54 +00:00
thorpej 66f9322f5f EISA and PCI do not require bouncing; specify a bounce threshold of 0. 1998-06-03 06:35:49 +00:00
thorpej 7b2ef456f0 When loading a DMA map, if the page's physical address exceeds the bounce
threshold, return an error to the caller (the caller will attempt to
bounce the transfer).
1998-06-03 06:35:04 +00:00
thorpej f018f866d7 Add a `bounce threshold' to the i386 DMA tag. 1998-06-03 06:33:02 +00:00
thorpej 0b25bb43b3 Adjust bus_dmamap_sync() for the R4000; in that case, use the stashed
virtual address for the segment, rather than the physical address, and
adjust the cache call appropriately.
1998-06-03 05:10:23 +00:00
thorpej 63be85fc62 Fill in the virtual address of each DMA segment as we load the map. 1998-06-03 04:41:30 +00:00
thorpej 691e8af708 Add a "virtual address" private member to the pmax bus_dma_segment_t, for
use in R4000 cache flush operations in bus_dmamap_sync().
1998-06-03 04:38:41 +00:00
thorpej 8ed096c794 Panic if we can't fulfill a bus_dmamap_load() with a boundary constraint. 1998-06-03 04:35:42 +00:00
thorpej 47724b2eb9 Sync w/ i386 port. 1998-06-03 04:33:28 +00:00
thorpej 2e846b8c1e Sync w/ i386 port. 1998-06-03 04:20:22 +00:00
thorpej 50be447da3 Sync the bus_dmamap_load back-end functions between alpha and i386. (only
slight, unnecessary differences)
1998-06-03 04:15:05 +00:00
mark 2c1cbdae75 Moved delay() from machdep.c to iomd_clock.c as delay will be dependant
on the system timers being used.
1998-06-02 21:57:58 +00:00
mark bdfeab3714 Merge in UVM support from Neil Carson <neil@causality.com>. 1998-06-02 20:41:46 +00:00
mark 0618ed7122 Define the maximum size of the kernel VM data area. 1998-06-02 20:33:01 +00:00
mark ea702a5130 Switch to MACHINE_NEW_NONCONTIG as the default. 1998-06-02 20:32:18 +00:00
mark 4ee7a131ad Don't allow the copyin and copyout routines to use bcopy() as this will
not work as the stack cannot be unwound if the copy aborts due to a fault.
1998-06-02 19:14:44 +00:00
mark 9a4b24a02a Simplify the stack filling code when using the STACKCHECKS option. 1998-06-02 14:34:55 +00:00
scottr 52da0e26c6 Kill unused variable that resulted from the last change. 1998-06-02 03:21:42 +00:00
scottr 910666949f An inability to map a slot's address space may be a normal condition --
for instance, on-board video may live here.  Make the complaint about
this a DEBUG rather than a DIAGNOSTIC message.
1998-06-02 02:24:03 +00:00
scottr da2f2cb79f Store the PA of the framebuffer in the softc. This eliminates the need
for the sc_phys callback; we can just store the PA in the grfbus attach
args, rather than a function pointer, which simplifies the code nicely.
1998-06-02 02:14:20 +00:00
thorpej 7022024d4a Add epic* at pci? 1998-06-02 01:43:33 +00:00
scottr b8ce6ef764 Make the direct ADB driver default. 1998-06-02 00:29:29 +00:00
mark 09a9c016e3 Added Manuel Bouyer's recent i386 _bus_dmamap_load_buffer() patch :-
Add handling of DMA boundary barrier in _bus_dmamap_load_buffer(). This
affects all bus_dmamap_load* functions of bus_dma(9).
While I'm there fix a bug where the dm_segs array could be overflowded by one.
1998-06-01 22:47:27 +00:00
thorpej c13f81fd52 Correct some comments. 1998-06-01 19:33:59 +00:00
tsubai b64a62fc73 Change "extern var;" --> "extern int var;" and so on. (for egcs -Wall) 1998-06-01 19:31:04 +00:00
kleink e6be56ae0b Need <stdlib.h> for mktemp() prototype. 1998-06-01 14:05:35 +00:00
thorpej 9ef6fa7387 Build pmap_boostrap.o without profiling; we can't call mcount before the
mmu is enabled!
1998-05-31 23:28:07 +00:00
thorpej a7f360c6c9 Specify a non-profiling C rule. 1998-05-31 23:25:41 +00:00
thorpej c1ca72eaf8 Build pmap_boostrap.o without profiling; we can't call mcount before the
mmu is enabled!
1998-05-31 23:18:57 +00:00
thorpej 92d8ae0ee3 Specify a non-profiling C rule. 1998-05-31 23:18:05 +00:00
veego 4519b25f6c Add options COMPAT_386BSD_MBRPART. 1998-05-31 13:53:42 +00:00
thorpej 019443d82c Profiling version of the BASALT kernel. 1998-05-30 17:56:08 +00:00
tsubai a8b4eda678 Remove unnecessary cache flush. 1998-05-30 06:16:06 +00:00
tsubai 560c0e7643 Make configurable without adb. 1998-05-30 06:13:03 +00:00
bouyer 94d805aff1 Add handling of DMA boundary barrier in _bus_dmamap_load_buffer(). This
affects all bus_dmamap_load* functions of bus_dma(9).
While I'm there fix a bug where the dm_segs array could be overflowded by one.
1998-05-29 16:48:09 +00:00
matt 5d6bc16daa more optimizations 1998-05-29 15:55:34 +00:00
matt 164da176e8 Add boundary checks to _bus_dma_load... 1998-05-29 15:25:07 +00:00
tsubai c1da5f908f Use arch/powerpc/. 1998-05-29 10:32:49 +00:00
sakamoto 970fffe99b revert. ofppc->powerpc 1998-05-29 10:04:22 +00:00
sakamoto 7e5b88f619 Revert OpenFirmware files to powerpc directory.
OpenFirmware files are used by ofppc/macppc.
1998-05-29 08:38:25 +00:00
drochner 0c05b92da1 pull in new PC display headers 1998-05-28 16:59:31 +00:00
drochner dd457b5369 pull in new PC display headers
support "pcdisplay" console device
1998-05-28 16:56:26 +00:00
leo 6a9cf99c36 Moved to usr/share/man/man8/man8.atari. 1998-05-28 12:51:03 +00:00
leo 57508e322c Add bootpref subdir. 1998-05-28 12:41:54 +00:00
leo ce735c3455 bootpref(8), set/get bootpreferences by Julian Coleman 1998-05-28 12:39:23 +00:00
leo f87c18d94e Fix some errors occuring when compiling with DEBUG. These errors were hinted
at by recent hp300/mac68k changes.
1998-05-28 12:16:08 +00:00
sakamoto 45439ad32b Use new PowerPC-generic stuff(sys/arch/powerpc). 1998-05-28 08:44:56 +00:00
sakamoto c6a40446f5 Keep compile directory. 1998-05-28 08:24:00 +00:00
sakamoto 9c11ca3d51 Rename NetBSD/powerpc to NetBSD/ofppc.
New sys/arch/powerpc with PowerPC-generic stuff.
1998-05-28 07:56:42 +00:00
scottr f2e26f6125 Handle a non-EMP Trackman the same way we handle a non-EMP Mouseman.
Patch from John Wittkoski.
1998-05-28 02:11:32 +00:00
matt 5c082547cd Add fat since it now works. 1998-05-28 00:57:55 +00:00
drochner dc8a7077ed Handle the i386/PMAP_NEW copyout() differently:
Don't try to avoid faults when the PTEs are checked. Set pcb_onfault
instead so that trapwrite() is called as if the PTE were RO.
This is faster than explicitely ckecking the PDEs - at least in the
majority of calls where the PT is already present.
Thanks to Stefan Grefen for input and testing.
1998-05-27 15:53:30 +00:00
pk 70262fb287 Properly split boot spec into file name and arguments. 1998-05-27 10:29:10 +00:00
scottr 47391e90cb Sync with mac68k: correct some errors if building a kernel with DEBUG. 1998-05-27 05:58:40 +00:00
scottr f976f2297f In pmap_check_wiring(), be careful to use uvm_map_lookup_entry() if we're
using UVM.  Notice by Hauke Fath, no PR generated.
1998-05-27 05:47:22 +00:00
scottr 92c02d3af3 If DEBUG, make sure to pull in the prototype for cngetc(). Noticed
by Hauke Fath, no PR generated.
1998-05-27 04:11:51 +00:00
scottr d5726c1096 PG_PTPAGE is only useful if !UVM. Noted by Hauke Fath in
PR 5462.
1998-05-27 03:58:16 +00:00
thorpej e208d8972b Ouch, key debugging printfs off BUS_DMA_DEBUG, not DEBUG ... noisy! 1998-05-27 03:57:49 +00:00
matt 3dc4f22908 A few fixes to make it really work. 1998-05-27 01:16:47 +00:00
thorpej c59c1eae2a Define ioasic device offsets in terms of standard ioasic "slot" offsets. 1998-05-27 00:18:13 +00:00
thorpej 1ef3ca572e - Additional rearrangement for the sake of running on the DECstation some
day.
- Convert to use bus_dma.
- Fix cleaning up unaligned start address.
- Correctly determine if the device supports Fast SCSI, and adjust the
  minimum sync period accordingly.
- Compute minimum sync period correctly on the 25MHz devices.
- Use GPI2 to determine if we're a 25MHz or 40MHz device.
- Currectly determine SCSI ID and "fast mode enabled" for the built-in
  TCDS on DEC 3000 models, using cached information from the PROM environment.
1998-05-26 23:43:05 +00:00
thorpej ab087002d1 Make this into a proper attachment (i.e. use asc_tcds) and clean up
the namespace accordingly.
1998-05-26 23:37:44 +00:00
thorpej 3aa84f9e26 - Make this into a proper attachment (i.e. use asc_tcds) and clean up
the namespace accordingly.
- Set FCLK in the CFG3 register if we have a > 25MHz clock.
- Indicate that we support Fast mode to the back-end if we're told we're
  fast by the TCDS layer.
- Correctly compute the minimum sync period.
1998-05-26 23:37:27 +00:00
thorpej 3ce836df8d Make the TCDS attachment of the ASC driver a proper attachment (i.e.
attach it with asc_tcds).
1998-05-26 23:34:23 +00:00
thorpej 2d384ae1a1 GPI2 in the CIR register indicates our clock speed: 1 = 25MHz, 0 = 40MHz. 1998-05-26 22:48:01 +00:00
thorpej 4631dca956 Rewrite at least the R{2,3}000 case for bus_dmamap_sync(), in hopes of
making performance of bus_dma drivers not completely suck on the DECstation.

XXX R4000 case is still abysmal, because some other data structure
modification is required to deal with the virtually-indexed R4000 cache.
1998-05-26 18:21:10 +00:00
tv ed42c358fd Revert. (wdc driver is still MD.) 1998-05-26 01:42:53 +00:00
mark 3a61502673 Initial commit of arm32 dependant PCI structures and type definitions. 1998-05-25 22:09:25 +00:00
mark 0b9fa28940 Initial commit of generic arm32 bus dma support. 1998-05-25 22:01:49 +00:00
kleink 967614df34 Protect against multiple inclusions. 1998-05-25 21:00:32 +00:00
kleink a97fc2f180 If any of _ANSI_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined, don't
provide any identifiers other than sig_atomic_t.
1998-05-25 20:59:01 +00:00
leo b8dad8ab1f Fix some severe bogons in the pci and isa interrupt system. 1998-05-25 10:42:21 +00:00
leo ef7f50804b Add bus_space_{read,write}_region_stream_N functions. 1998-05-25 09:08:08 +00:00
thorpej e569598438 On DEC 3000s, ask the prom for the SCSI ID and "fast mode enabled" of
the built-in TCDS, while we can still access the prom.
1998-05-25 05:16:42 +00:00
tv 6cdddb35ee Don't duplicate device information: get ISA and ATAPI info (which is the
same) from dev/isa/files.isa and dev/ata/files.ata.
1998-05-25 04:32:12 +00:00
thorpej 085b73d2db Add "SCSIID" and "SCSIFAST" environment variables present on the
DEC 3000 systems.
1998-05-25 04:01:10 +00:00
thorpej 57c68363d6 Add support for reading the SCSI ID and "fast mode enabled" from the
PMAZB-AA and PMAZC-AA EEPROM.
1998-05-25 01:14:38 +00:00
thorpej 3b9e9634fb - Change the tcds child locator from "slot" to "chip", making it look less
like a TurboChannel locator, and more like what is actually going on.
- Allow tcds and asc children of tcds to be cloned.
1998-05-24 23:45:29 +00:00
thorpej d3ead78027 Several changes to the TurboChannel Dual SCSI driver:
- Fix the autoconfiguration model; the TCDS children don't attach to
  TurboChannel, so don't make it look like they do.
- Make the driver use bus_space (not bus_dma yet; soon)
- Recognize the PMAZ-FS (baseboard fast SCSI on DEC 3000s) and the
  PMAZB-AA (TCDS option card) and PMAZC-AA (TCDS fast SCSI option card).
- Rearrange it a bit, so that it can eventually be made into an "MI"
  TurboChannel driver (i.e. work on DECstations).
1998-05-24 23:41:42 +00:00
ross a3073631d7 Rebury an old mach-vm-quirk warning, for mach vm kernels. 1998-05-24 22:15:19 +00:00
ross 1ce82f8f84 Fix previous to kill gcc warning in non-DEBUG compile. 1998-05-24 20:59:49 +00:00
is 07a089c48c Replace a couple of machineid uses by cputype uses. 1998-05-24 20:55:01 +00:00
is d96ca9b830 Fix thinko. Rather, nonthink-o. 1998-05-24 20:10:33 +00:00
is b20631e721 Last part of the opt_m68kcpu.h backout. 1998-05-24 20:06:32 +00:00
is 7a0f63f982 Back out the defopt for M680?0. As pointed out to me, this breaks ports which
dont use the M680?0 the way Amiga, Atari, Mac68k, and X68k do. I must have
missed this in the past discussion about this project.
1998-05-24 19:32:34 +00:00
matt 66e7b8998f Only disable stray interrupts if there is no interrupt handler attached 1998-05-24 19:09:57 +00:00
mark 073de471d7 Remove M68040 ifdefs from the driver inherited from the initial import
of the file from the arch/amiga/dev directory.
Leave reminders though that attention needs to be paid at these points
for when DMA is implemented.
1998-05-24 18:19:29 +00:00
mark 8ef62973c1 Comment out the rp variables as they are not currently used.
Removed the register keywords.
In setdisklabel() declare 'i' as an int.
1998-05-24 17:13:30 +00:00
drochner 480294be7d remove assumption about code aligment after "jmp"
(is not worth the possible confusion)
1998-05-24 12:04:23 +00:00
is e58fc1f821 - remove some dependency lines which aren't needed anymore due to opt_m68kcpu.h
- There isn't any vfs_conf.o anymore.
1998-05-24 08:31:33 +00:00
scottr 9df06931ab Rewrite doboot() so that it turns off the MMU, rather than relying
on the ROM space being mapped where it would like to be.
1998-05-24 06:15:50 +00:00
matt a54568bc38 Add PCMCIA hooks (taken from files.i386) 1998-05-23 22:42:14 +00:00
ross 02ae2c98b3 In pmap_pv_enter() untangle the allocated pv (now "newpv") and the DEBUG
loop temporary so DEBUG kernels don't trap on startup.
1998-05-23 22:23:09 +00:00
briggs ce70d405cd Handle video interrupts for the Radius PrecisionColor 24X card. Thanks for
sleuthing and testing go to Robert Oelkers <windcatcher@earthlink.net>.
1998-05-23 22:08:41 +00:00
ross 30e2441b99 Prototype sio_intr_alloc(). 1998-05-23 21:36:33 +00:00
is 6a6812fd92 Move M680[2346]0 to opt_m68kcpu.h.
XXX Some explicit dependencies could be removed now from the individual
arch/$ARCH/conf/Makefile.$ARCH files, but this is still to be done.
1998-05-23 20:51:06 +00:00
ragge 5fc912ddc9 Remove a forgotten debug printout. 1998-05-23 19:18:59 +00:00
matt 9c2e213217 Add sio_intr_alloc (copied from i386's isa_intr_alloc) for PCMCIA. 1998-05-23 18:35:56 +00:00
matt 11e1975af7 Add isa_intr_alloc macro (for PCMCIA). 1998-05-23 18:35:03 +00:00
matt 7a1e3fe2ea Allow serial consoles *without* any graphics devices. 1998-05-23 18:21:43 +00:00
matthias e63637f311 resolve conflicts from the latest i386 import. 1998-05-23 12:52:27 +00:00
ragge b28c99b245 Fixed bug with lost characters in DDB output. 1998-05-23 12:49:30 +00:00
thorpej 3dfd62c76f cs_heldchar is gone. 1998-05-23 00:51:10 +00:00
thorpej c8092e5d3b Provide bus_space and bus_dma data structures to the TurboChannel bus. 1998-05-22 21:14:40 +00:00
thorpej 7a9c58e1b1 Complete from-scratch rewrite of the DECstation bus.h, brining it
up-to-date with the current API, and implementing preliminary
support for bus_dma.
1998-05-22 21:14:04 +00:00
cgd a2c213c028 fix code so that a 'generic' OFW kernel (which only uses OFW drivers)
will again compile.  This code needs a bunch of cleanup, and the
"generic OFW kernel" code should probably be split into a different
directory than the code which implements the interface to OFW.
1998-05-22 17:43:10 +00:00
drochner bd9ed5a6fd STANDALONE->_STANDALONE (cpp definition)
closes PR kern/5481 (Erik Bertelsen <erik@q610.ebe.uni-c.dk>)
1998-05-22 12:56:35 +00:00
ragge 464d197e67 Remove unneccessary file. Remove stale dependency. Disable not-working
devices by default.
1998-05-22 09:59:55 +00:00
ragge 9251293f18 Remove unnecessary code for interrupt vector handling. 1998-05-22 09:49:07 +00:00
ragge f4f1fcf563 Remove unnecessary code for interrupt vector handling. 1998-05-22 09:26:33 +00:00
thorpej 0cb3acc9ae Correct a small, but fatal, typo. 1998-05-21 23:38:04 +00:00
fvdl 27fea992a8 Add the newer PII (model 5) and newer AMD K6 (model 6,7) plus the
AMD K6-3D (model 8) to the cpu type table.
1998-05-21 23:34:40 +00:00
thorpej aaf43a156e Make this build for a 3MAX-only kernel. 1998-05-21 17:41:29 +00:00
ragge d31979884b Unused file for now - no more runtime decisions! 1998-05-21 14:33:14 +00:00
ragge 6568bc224e Wall fix. 1998-05-21 13:16:14 +00:00
ragge ce7c143e6c Rewrite the autoconf code for VS3000's.
XXX - no support for any disks at all yet.
1998-05-21 13:10:59 +00:00
ragge dda2be85ff Small Wall fixes. 1998-05-21 13:06:24 +00:00
ragge cd17c11c60 Support for DDB on DZ console. 1998-05-21 13:02:20 +00:00
pk 229ff62ff7 Do not assume that a parallel component is always configured.
Squash compiler warnings if MAGMA_DEBUG is on.
1998-05-20 22:08:10 +00:00
is 0f3fa9f640 Fix tyop. 1998-05-20 20:42:08 +00:00
fair 17371233fa make some preliminary changes so that this compiles for UVM 1998-05-20 18:35:49 +00:00
thorpej 93d96b3415 Add LOCKDEBUG (commented out). 1998-05-20 18:09:16 +00:00
thorpej 2352dfea2b Make this compile with LOCKDEBUG. 1998-05-20 17:32:13 +00:00
thorpej 4854a503ac Propagate a fix from the i386 version: fix a typo in some code that isn't
yet used.
1998-05-20 17:12:06 +00:00
drochner 6de27a7083 Make copyout() and Co. work with PMAP_NEW on real i386 processors.
PMAP_NEW doesn't fault in page table pages automatically on access to
PTmap[], so we have to check the PTD explicitely.
If a PTP is needed, call uvm_fault(). pmap_enter() will DTRT.
Move calculation of the index into PTmap[] inside the loop in copyoutstr()
(non-PMAP_NEW case). Page boundary crosses are rare, so this should save
some cycles in average.
1998-05-20 16:30:54 +00:00
augustss 796e91b2a7 Add ym (Yamaha OPL3-SA3) driver. 1998-05-20 16:25:06 +00:00
pk 53ce970e7f Enable NTP. 1998-05-20 11:50:54 +00:00
thorpej a2f214a443 Add fine-grained locking, using a locking protocol modeled after the i386
UVM pmap's locking protocol, written by Chuck Cranor.  Not all of the
support for multiple processors is here yet, but the kernel does run
under moderate loads with LOCKDEBUG (all locking operations are no-ops
unless LOCKDEBUG is turned on).

This is by no means complete... there are still some possible snares
to take a look at.
1998-05-20 04:05:50 +00:00
pk 0f93e72a5d Add `mtty' and `mbpp' entries for the magma driver by Iain Hibbert. 1998-05-20 00:04:33 +00:00
pk 5fd81fa9ec Add entries for the magma SBus serial/parallel port driver. 1998-05-20 00:00:12 +00:00
pk 4e62cce89a Magma SBus serial & parallel port driver from Iain Hibbert. 1998-05-19 23:58:54 +00:00
thorpej 89835ce0fd Correct a typo in some code that isn't yet used. 1998-05-19 22:09:00 +00:00
thorpej 6626878e7b It is no longer necessary for pmap_pinit() and pmap_release() to be
pmap interface functions, as NetBSD no longer uses statically allocated
pmaps (except for the kernel pmap, which is special-cased anyhow).
1998-05-19 19:00:11 +00:00
thorpej ca819f2940 Argh, finish renaming Lev1map to kernel_lev1map. 1998-05-19 18:35:11 +00:00