• Electric Head Recharged

    From Stephen Gunnell@21:1/5 to All on Tue Sep 28 23:53:27 2021
    Just working on Anton Marsden's Electric Head warrior with a view to upgrading it. The core clear and its boot is insanely complicated so I patched the code to only run the clear and started debugging it in Pmars. As far as I can tell there are at least
    two and maybe three major bugs in the published edition. I wonder if they were always there or if they were added when Anton changed the constants for publication? Or maybe I'm just failing to understand some aspect of the intended behaviour.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Metcalf@21:1/5 to Stephen Gunnell on Thu Sep 30 18:05:39 2021
    On Tue, 28 Sep 2021 23:53:27 -0700, Stephen Gunnell wrote:

    Just working on Anton Marsden's Electric Head warrior with a view to upgrading it. The core clear and its boot is insanely complicated so I patched the code to only run the clear and started debugging it in
    Pmars. As far as I can tell there are at least two and maybe three major
    bugs in the published edition. I wonder if they were always there or if
    they were added when Anton changed the constants for publication? Or
    maybe I'm just failing to understand some aspect of the intended
    behaviour.

    Hi,

    It appears to be working here. The clear boots to the following which
    does a SPL/DAT clear:

    4012 DAT.F $ 19, $ 500
    4013 DAT.F $ 3960, $ -3955

    ; ....

    4031 SPL.B # 41, $ 45
    4032 MOV.I * -20, > -20
    4033 MOV.I * 20, > -20
    4034 DJN.F $ -1, { -21

    ; ....

    4053 DAT.F $ 1, $ 45
    4054 SPL.B # -40, $ 45

    Where did you find the code? Maybe there's a broken copy somewhere online.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Gunnell@21:1/5 to John Metcalf on Sun Oct 3 03:52:43 2021
    On Friday, 1 October 2021 at 2:05:40 am UTC+8, John Metcalf wrote:
    On Tue, 28 Sep 2021 23:53:27 -0700, Stephen Gunnell wrote:

    Just working on Anton Marsden's Electric Head warrior with a view to upgrading it. The core clear and its boot is insanely complicated so I patched the code to only run the clear and started debugging it in
    Pmars. As far as I can tell there are at least two and maybe three major bugs in the published edition. I wonder if they were always there or if they were added when Anton changed the constants for publication? Or
    maybe I'm just failing to understand some aspect of the intended behaviour.
    Hi,

    It appears to be working here. The clear boots to the following which
    does a SPL/DAT clear:

    4012 DAT.F $ 19, $ 500
    4013 DAT.F $ 3960, $ -3955

    ; ....

    4031 SPL.B # 41, $ 45
    4032 MOV.I * -20, > -20
    4033 MOV.I * 20, > -20
    4034 DJN.F $ -1, { -21

    ; ....

    4053 DAT.F $ 1, $ 45
    4054 SPL.B # -40, $ 45

    Where did you find the code? Maybe there's a broken copy somewhere online.

    John

    The copy I have is Electric Head from Koenigstuhl. It works just fine but the actual behaviour is much simpler than the code would seem to indicate (the complex bomb switching doesn't work properly) . So I went back to David van Dam's The Core Clear and
    the body and constants are identical. But the behaviour doesn't really match David's strategy comments or maybe I'm missing something.

    From your code above the spl at 4031 should be copied through core by the mov at 4032 until it overwrites location 4012 when the bomb switches to the dat at 4053. This never happens because location 4032 is not initially part of the djn loop.
    The SPL at 4054 should be copied through core by the mov at 4033 until the point at which the djn's decrement stream reaches 4053 at which point it switches to the dat at 4053. This sort of happens eventually but once 4012 and 4013 get overwritten by the
    spl from 4054 both moves track each other through core in a very inefficient manner.
    Since my post I managed to re-write the central section so that the 4032 / 4053 switch operates correctly but the DJN stream lags more than expected and the clear stalls. The re-written code does not work any better that the published version. More work
    needed.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)