OS4 DepotLogo by Browallia 
   Home     Recent     Search     Submit     Contact  
 Menu
 
 Features
   Crashlogs
   Bug tracker
   Locale browser
 
 Username

 Password


   Register here

 Main menu
   BBCode test
 
 Content
   ToDo List
   List Content
 
 
Support the site
 View crashlog
Application:    owb
Short:    DSI error on start 8000 0003
OS4Depot Path:    network/browser/owb.lha
Version:    3.22
CreatedBy:    Chain (93.99.142.1)    CreatedAt:    20100103 16:07
Crashlog URL:    http://crashlog.os4depot.net/cl284
Description:
Cant get it to work on os 4.0 classic.
always generates DSI error.
worked fine before amiupdating
Crashlog:
Crash log for task "OWB"
Generated by GrimReaper 52.4
Crash occured in module OWB at address 0x1EA17F10
Type of crash: DSI (Data Storage Interrupt) exception

Register dump:
GPR (General Purpose Registers):
   0: 00000000 3E8EEA40 FFFFFFFF 3EBC7494 00000000 3EBC74CC 3F7C66C0 00000010 
   8: 00000001 00000000 44242DC4 3EBC7494 28004042 3EAE1198 3F1DE58C 3EAE0000 
  16: 3EAFB184 8000009D 8000007A 80000078 80000089 80000084 80000083 80000082 
  24: 8000008F 8000008E 80000081 44401B70 3EAE0000 3FFFA800 3F19FAD8 3DFAC828 


FPR (Floating Point Registers, NaN = Not a Number):
   0:              nan            255.5          0.99999                0 
   4:     -4.50979e-08     -7.88885e-10       3.8598e-06                0 
   8:     -8.86216e-11      -0.00392924     -1.17292e-09      2.06895e-19 
  12:                1                1                0                0 
  16:     1.08646e-311                0                0              nan 
  20:              nan              nan              nan              nan 
  24:    -7.84796e+298              nan    -8.98737e+307      9.03686e+74 
  28:     1.15315e+260        0.0937491    -7.75359e+230       9.0457e+74 

FPSCR (Floating Point Status and Control Register): 0xFFBA439F


SPRs (Special Purpose Registers):
           Machine State (msr) : 0x0000F070
                Condition (cr) : 0x28004082
      Instruction Pointer (ip) : 0x1EA17F10
       Xtended Exception (xer) : 0x20000000
                   Count (ctr) : 0x44242B34
                     Link (lr) : 0x1EA19EA4
            DSI Status (dsisr) : 0x40000000
            Data Address (dar) : 0x000000AC



680x0 emulated registers:
DATA: 00000001 0000005E 00000000 00000000 00000000 00000000 00000000 00000000 
ADDR: 00003200 3FF75AA0 00000000 00000000 00000000 00000000 00000000 3E8EDF70 
FPU0:                0                0                0                0 
FPU4:                0                0                0                0 



Symbol info:
Instruction pointer 0x1EA17F10 belongs to module "OWB" (HUNK/Kickstart)

Stack trace:
    module OWB at 0x1EA17F10 (section 5 @ 0x4EF0)
    module OWB at 0x1EA1AEA8 (section 5 @ 0x7E88)
    module OWB at 0x1EA21030 (section 5 @ 0xE010)
    native kernel module newlib.library.kmod+0x00000e90
    native kernel module newlib.library.kmod+0x0000234c
    native kernel module newlib.library.kmod+0x00002930
    _start()+0x170 (section 1 @ 0x170)
    native kernel module dos.library.kmod+0x0001a824
    native kernel module kernel+0x0003cbc8
    native kernel module kernel+0x0003cc48
    

PPC disassembly:
 1ea17f08: 3f803eae   lis               r28,16046
 1ea17f0c: 813c9998   lwz               r9,-26216(r28)
*1ea17f10: 800900ac   lwz               r0,172(r9)
 1ea17f14: 901f00ac   stw               r0,172(r31)
 1ea17f18: 8810004f   lbz               r0,79(r16)

System information:

CPU 
 Model: 603e V7.513 
 CPU speed: 240 MHz 
 FSB speed: 60 MHz 
 Extensions:  

Machine 
 Machine name: BlizzardPPC 
 Memory: 132084 KB 
 Extensions: bus.zorro bus.pci classic.aga classic.ecs classic.ocs classic.customchips 

Expansion buses 
 PCI/AGP 
 Zorro 
  Manufacturer 0x2140 Product 0x65 
   Zorro II 
   Board @ 0xfffe0000 
   Size 64 KB 
  Manufacturer 0x2140 Product 0x65 
   Zorro II 
   Board @ 0xfffa0000 
   Size 64 KB 
  Manufacturer 0x2140 Product 0x65 
   Zorro II 
   Board @ 0xfffc0000 
   Size 128 KB 
  Manufacturer 0x2140 Product 0x65 
   Zorro III 
   Board @ 0xe0000000 
   Size Reserved 
   Subsize same 
  Manufacturer 0x2140 Product 0x65 
   Zorro III 
   Board @ 0xe0800000 
   Size Reserved 
   Subsize same 
  Manufacturer 0x2140 Product 0x65 
   Zorro II 
   Board @ 0xef000000 
   Size 128 KB 

Libraries 
 0x3f9bec58: ISO-8859-2.charset V52.1 
 0x3f9bebd8: czech_ISO-8859-2.language V52.1 
 0x44ba1736: exec.library V52.21 
 0x3ff73444: vilintuisup.library V0.9 
 0x3ff73318: cgxvideo.library V42.1 
 0x3ff7b0e0: cybergraphics.library V43.0 
 0x3dfb6220: expat.library V53.1 
 0x3edbfbd8: icudata.owb V1.1 
 0x3edbfcd8: pthreads.library V52.2 
 0x3f012490: arexx.class V52.1 
 0x3f012210: fuelgauge.gadget V52.1 
 0x3f8d32e8: Access.docky V52.1 
 0x3ee1ef18: DateTime.docky V52.4 
 0x3ee200bc: xadmaster.library V13.1 
 0x3ee29190: slider.gadget V52.1 
 0x3ec35ea0: getfont.gadget V52.1 
 0x3edbc470: getfile.gadget V52.1 
 0x3fea8a58: popupmenu.library V52.1 
 0x3f2159f8: popupmenu.class V52.1 
 0x3edbc0c8: clicktab.gadget V52.2 
 0x3ec35810: space.gadget V52.1 
 0x3ee17e60: checkbox.gadget V52.1 
 0x3ee9a1e8: speedbar.gadget V52.2 
 0x3ff50e20: bitmap.image V52.1 
 0x3ee02298: listbrowser.gadget V52.5 
 0x3ec35270: integer.gadget V52.1 
 0x3ff50d20: penmap.image V52.1 
 0x3ec33020: string.gadget V52.1 
 0x3ee9b868: chooser.gadget V52.1 
 0x3ee03020: requester.class V52.2 
 0x3ef53b74: asl.library V52.5 
 0x3f61fca0: jpeg.datatype V52.1 
 0x3f6d5420: mathieeedoubbas.library V52.1 
 0x3f67ca50: label.image V52.1 
 0x3ff50b20: glyph.image V52.1 
 0x3f7b05d4: usergroup.library V4.29 
 0x3f67c050: button.gadget V52.1 
 0x3f74b742: paula.audio V4.33 (Legacy) 
 0x3ff50920: scroller.gadget V52.1 
 0x3f6e68f0: bsdsocket.library V4.289 
 0x3f951d00: bevel.image V52.1 
 0x3f95fcb8: layout.gadget V52.2 
 0x3f7b173c: textclip.library V52.2 
 0x3ff50820: drawlist.image V52.1 
 0x3f9bdb80: window.class V52.1 
 0x3f8d46e0: ilbm.datatype V52.1 
 0x3f9516e8: emulation.library V41.439 
 0x3f88e044: picture.datatype V52.2 
 0x3f8d4320: png.datatype V52.3 
 0x3f95d018: timezone.library V52.8 
 0x3f8d30e8: application.library V52.1 
 0x3f8d4072: nonvolatile.library V52.2 (Legacy) 
 0x3ff5063c: ft2.library V52.1 
 0x3ff387ac: workbench.library V52.8 
 0x3f95a7d0: Picasso96API.library V2.344 
 0x3f950260: gadtools.library V52.1 
 0x3f95c3dc: commodities.library V52.1 
 0x3fa14540: datatypes.library V52.3 
 0x3fc4e8cc: icon.library V52.4 
 0x3f9be458: version.library V52.2 
 0x3fa118b0: iffparse.library V52.1 
 0x3ffb1ccc: locale.library V52.4 
 0x3ff537ac: diskfont.library V52.5 
 0x3ff9f6d8: petunia.library V52.5 
 0x3feba5f4: dos.library V52.22 
 0x3ff738f4: usbprivate.library V52.8 
 0x3ff8bc2c: massstorage.usbfd V52.9 
 0x3ff8bb98: bootmouse.usbfd V52.2 
 0x3ff8bb18: bootkeyboard.usbfd V52.3 
 0x3ff9f56c: hub.usbfd V52.4 
 0x3fff997c: usbresource.library V52.8 
 0x3ff8ba98: hunk.library V52.5 
 0x3ff9f414: elf.library V52.4 
 0x3fef74d0: intuition.library V52.11 
 0x3ff37150: rtg.library V41.4301 
 0x3ff8b820: 3DLabsPermedia2.chip V7.26 
 0x3ff752a4: CVisionPPC.card V2.9 
 0x3ff9d7a0: keymap.library V52.2 
 0x3fff94c0: layers.library V52.2 
 0x3ffb0420: graphics.library V52.1 
 0x3ff9e318: newlib.library V52.38 
 0x3ff891ac: utility.library V52.1 
 0x3ff9d0a8: expansion.library V52.3 
 0x3f6ff58e: rexxsyslib.library V45.7 (Legacy) 

Devices 
 0x3eefd6e8: diskimage.device V52.40 
 0x3f6d2224: cnet.device V1.9 (Legacy) 
 0x3f6ff744: audio.device V52.1 
 0x3f95f414: ahi.device V6.6 
 0x3fff9bf0: usbsys.device V52.8 
 0x3ff52018: highway.usbhcd V1.7 
 0x3fffb628: console.device V52.4 
 0x3ff9f324: scsi.device V52.5 (Legacy) 
 0x3ff744f4: carddisk.device V52.2 (Legacy) 
 0x3ff73204: trackdisk.device V52.3 (Legacy) 
 0x3ff8a530: ramdrive.device V52.4 
 0x3ff533bc: input.device V52.2 
 0x3fff9764: keyboard.device V52.1 
 0x3fff9594: gameport.device V52.1 
 0x3ff8a410: timer.device V52.4 

Tasks 
 ClickToFront (Waiting) 
  Stack: 0x3ee7f004 - 0x3ee87ffc, pointer @ 0x3ee87aa0 (Cookie OK) 
  Signals: SigRec 0xc000d000, SigWait 0x00000000 
  State: Process (Waiting) 
 input.device (Waiting) 
  Stack: 0x3ff3f000 - 0x3ff47000, pointer @ 0x3ff46f80 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Task (Waiting) 
 USB stack (Waiting) 
  Stack: 0x3ffb4000 - 0x3ffb8000, pointer @ 0x3ffb7f60 (Cookie OK) 
  Signals: SigRec 0xf8007000, SigWait 0x00000000 
  State: Task (Waiting) 
 card.resource (Waiting) 
  Stack: 0x3ff49000 - 0x3ff4b000, pointer @ 0x3ff4afb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Task (Waiting) 
 scsi.device (Waiting) 
  Stack: 0x3ff81000 - 0x3ff83000, pointer @ 0x3ff82fa0 (Cookie OK) 
  Signals: SigRec 0xe0000000, SigWait 0x00000000 
  State: Task (Waiting) 
 CD0 (Waiting) 
  Stack: 0x3fe90004 - 0x3fe92ffc, pointer @ 0x3fe92f30 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 RAM (Waiting) 
  Stack: 0x3fd3c004 - 0x3fd3dffc, pointer @ 0x3fd3dcd0 (Cookie OK) 
  Signals: SigRec 0xc0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 reaper.task (Waiting) 
  Stack: 0x3fa53004 - 0x3fa5bffc, pointer @ 0x3fa5bed0 (Cookie OK) 
  Signals: SigRec 0x00007000, SigWait 0x00000000 
  State: Process (Waiting) 
 DH2 (Waiting) 
  Stack: 0x3fe9e004 - 0x3fea0ffc, pointer @ 0x3fea0f10 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 DH0 (Waiting) 
  Stack: 0x3fe89004 - 0x3fe8bffc, pointer @ 0x3fe8bf10 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 DF0 (Waiting) 
  Stack: 0x3ff23004 - 0x3ff24ffc, pointer @ 0x3ff24f10 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CC0 (Waiting) 
  Stack: 0x3fd2a004 - 0x3fd2bffc, pointer @ 0x3fd2bf10 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 DH1 (Waiting) 
  Stack: 0x3fe97004 - 0x3fe99ffc, pointer @ 0x3fe99f10 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 trackdisk.device (Ready) 
  Stack: 0x3fd63000 - 0x3fd65000, pointer @ 0x3fd64fa0 (Cookie OK) 
  Signals: SigRec 0x00000300, SigWait 0x00000600 
  State: Task (Ready) 
 carddisk.device (Waiting) 
  Stack: 0x3ff4d000 - 0x3ff4f000, pointer @ 0x3ff4efb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Task (Waiting) 
 console.device (Waiting) 
  Stack: 0x3fece000 - 0x3fed6000, pointer @ 0x3fed5f80 (Cookie OK) 
  Signals: SigRec 0xf0000000, SigWait 0x00000000 
  State: Task (Waiting) 
 dos_lock_handler (Waiting) 
  Stack: 0x3ff11004 - 0x3ff12ffc, pointer @ 0x3ff12f30 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_nbmd_process (Waiting) 
  Stack: 0x3ff17004 - 0x3ff18ffc, pointer @ 0x3ff18f40 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 RAW (Waiting) 
  Stack: 0x3fd30004 - 0x3fd31ffc, pointer @ 0x3fd31e20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON (Waiting) 
  Stack: 0x3fd36004 - 0x3fd37ffc, pointer @ 0x3fd37e20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON (Waiting) 
  Stack: 0x3fd42004 - 0x3fd43ffc, pointer @ 0x3fd43e20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON (Waiting) 
  Stack: 0x3fa29004 - 0x3fa31ffc, pointer @ 0x3fa31e20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 RANDOM (Waiting) 
  Stack: 0x3f733004 - 0x3f73bffc, pointer @ 0x3f73bf10 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON (Waiting) 
  Stack: 0x3ef03004 - 0x3ef0bffc, pointer @ 0x3ef0be20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON (Waiting) 
  Stack: 0x3eeb8004 - 0x3eec0ffc, pointer @ 0x3eec0e20 (Cookie OK) 
  Signals: SigRec 0x80000100, SigWait 0x00000000 
  State: Process (Waiting) 
 ENV (Waiting) 
  Stack: 0x3f9f8004 - 0x3fa00ffc, pointer @ 0x3fa00e20 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 RexxMaster [] (Waiting) 
  Stack: 0x3f767004 - 0x3f76effc, pointer @ 0x3f76ef60 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Process (Waiting) 
 TEXTCLIP (Waiting) 
  Stack: 0x3f71e004 - 0x3f726ffc, pointer @ 0x3f726ed0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 Workbench [Workbench] (Ready) 
  Stack: 0x3f578004 - 0x3f580ffc, pointer @ 0x3f580eb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x80000100 
  State: Process (Ready) 
 Workbench Clipboard Server (Waiting) 
  Stack: 0x3f25a004 - 0x3f262ffc, pointer @ 0x3f262f20 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 Workbench DosList Notify (Waiting) 
  Stack: 0x3efbb004 - 0x3efc3ffc, pointer @ 0x3efc3f60 (Cookie OK) 
  Signals: SigRec 0x00003000, SigWait 0x00000000 
  State: Process (Waiting) 
 string.gadget server (Waiting) 
  Stack: 0x3f21d004 - 0x3f225ffc, pointer @ 0x3f225e10 (Cookie OK) 
  Signals: SigRec 0x40000000, SigWait 0x00000100 
  State: Process (Waiting) 
 WheelBusMouse (Ready) 
  Stack: 0x3f56b004 - 0x3f573fec, pointer @ 0x3f573eb0 (Cookie OK) 
  Signals: SigRec 0x00000010, SigWait 0x00000010 
  State: Process (Ready) 
 AmiDock (Ready) 
  Stack: 0x3eecd004 - 0x3eed5ffc, pointer @ 0x3eed59b0 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000100 
  State: Process (Ready) 
 TCP/IP Control (Ready) 
  Stack: 0x3f636004 - 0x3f63effc, pointer @ 0x3f63ee00 (Cookie OK) 
  Signals: SigRec 0xf8009080, SigWait 0x40000000 
  State: Process (Ready) 
 DST watcher (Waiting) 
  Stack: 0x3f84f004 - 0x3f857ffc, pointer @ 0x3f857f40 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Process (Waiting) 
 datatypes.library (Waiting) 
  Stack: 0x3f82a004 - 0x3f832ffc, pointer @ 0x3f832f30 (Cookie OK) 
  Signals: SigRec 0x00001100, SigWait 0x00000000 
  State: Process (Waiting) 
 TCP/IP Log (Waiting) 
  Stack: 0x3f6a1004 - 0x3f6a9ffc, pointer @ 0x3f6a9f30 (Cookie OK) 
  Signals: SigRec 0x80003000, SigWait 0x00000000 
  State: Process (Waiting) 
 TCP/IP Superserver [TCP/IP Superserver] (Waiting) 
  Stack: 0x3f64b004 - 0x3f653ffc, pointer @ 0x3f653a20 (Cookie OK) 
  Signals: SigRec 0xd0000080, SigWait 0x00000100 
  State: Process (Waiting) 
 USB stack Process (Waiting) 
  Stack: 0x3f707004 - 0x3f70fffc, pointer @ 0x3f70ff30 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 TCP/IP Configuration (Waiting) 
  Stack: 0x3f668004 - 0x3f670ffc, pointer @ 0x3f670e30 (Cookie OK) 
  Signals: SigRec 0xf8003000, SigWait 0x00000100 
  State: Process (Waiting) 
 ConClip (Waiting) 
  Stack: 0x3f785004 - 0x3f78dffc, pointer @ 0x3f78ded0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Process (Waiting) 
 Background CLI [PowerIcons] (Waiting) 
  Stack: 0x3f51c004 - 0x3f524ffc, pointer @ 0x3f524d20 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 FreeWheel (Waiting) 
  Stack: 0x3ee72004 - 0x3ee79ffc, pointer @ 0x3ee79f50 (Cookie OK) 
  Signals: SigRec 0x48001000, SigWait 0x00000100 
  State: Process (Waiting) 
 ASYNCWB (Waiting) 
  Stack: 0x3eee2004 - 0x3eeeaffc, pointer @ 0x3eeeaeb0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 RAWBInfo (Waiting) 
  Stack: 0x3ef2d004 - 0x3ef35ffc, pointer @ 0x3ef35ee0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 DefIcons (Waiting) 
  Stack: 0x3ef20004 - 0x3ef28ffc, pointer @ 0x3ef28de0 (Cookie OK) 
  Signals: SigRec 0x80009000, SigWait 0x00000100 
  State: Process (Waiting) 
 DiskImageGUI (Waiting) 
  Stack: 0x3ee30004 - 0x3ee38ffc, pointer @ 0x3ee38dd0 (Cookie OK) 
  Signals: SigRec 0xd8000000, SigWait 0x00000100 
  State: Process (Waiting) 
 application.library messageserver (Waiting) 
  Stack: 0x3f8d5000 - 0x3f8d5fa0, pointer @ 0x3f8d5f20 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Task (Waiting) 
 « IPrefs » (Waiting) 
  Stack: 0x3f92b004 - 0x3f933ffc, pointer @ 0x3f933590 (Cookie OK) 
  Signals: SigRec 0x0000f000, SigWait 0x40000100 
  State: Process (Waiting) 
 ramlib (Waiting) 
  Stack: 0x3fa3e004 - 0x3fa46ffc, pointer @ 0x3fa46f40 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 OWB [OWB] (Crashed) 
  Stack: 0x3e86e004 - 0x3e8eeffc, pointer @ 0x3e8eea40 (Cookie OK) 
  Signals: SigRec 0x00000020, SigWait 0x14000100 
  State: Process (Crashed) 
 Picasso96 (Waiting) 
  Stack: 0x3f93c004 - 0x3f944ffc, pointer @ 0x3f944dd0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_signal_server (Waiting) 
  Stack: 0x3ff1d004 - 0x3ff1effc, pointer @ 0x3ff1ef40 (Cookie OK) 
  Signals: SigRec 0x0000e000, SigWait 0x00000000 
  State: Process (Waiting) 
 idle.task (Ready) 
  Stack: 0x3ff71000 - 0x3ff72000, pointer @ 0x3ff71fd0 (Cookie OK) 
  Signals: SigRec 0x00000000, SigWait 0x00000000 
  State: Task (Ready)  
Copyright (c) 2004-2024 by Björn Hagström. All Rights Reserved