' decompiling 2EB0:A272
       SUB DoShipShipCombat_2EB0_A272
       void sub()
[A278] <1000>            ' make_frame 668, 77
[A28B] <1000>            Dim lShipsInFCodeOrder(0 To 500) OF size_2_type
[A2A1] <1000>            Dim lTons(0 To 2, 0 To 11) OF size_4_type
[A2B7] <1000>            Dim lTons2(0 To 2, 0 To 11) OF size_4_type
[A2D3] <1000>            IF Length(Dir((gGameDir ++ "TONS.HST"))) > 0 THEN
[A2DF] <0304>              lTonsFile := FreeFile()    // was a 'mov'
[A2ED] <1000>              Open (gGameDir ++ "TONS.HST") As #lTonsFile For -1, 32
[A2FA] <1000>              FOR lvFF98 := 1 TO 11 DO
[A307] <0304>                lFilePosL := ((4 * (lvFF98 - 1)) + 1)    // was a 'mov'
[A30D] <1000>                FileGet #lTonsFile, pos ((4 * (lvFF98 - 1)) + 1), ES:lTons((4 * (lvFF98 + lvFFC4))), 4 bytes
[A332] <1000>              NEXT lvFF98
[A33A] <1000>              Close #lTonsFile
[A344] <1000>            ENDIF
[A35B] <1000>            IF Length(Dir((gGameDir ++ "TONS2.HST"))) > 0 THEN
[A367] <0304>              lTonsFile := FreeFile()    // was a 'mov'
[A375] <1000>              Open (gGameDir ++ "TONS2.HST") As #lTonsFile For -1, 32
[A382] <1000>              FOR lvFF98 := 1 TO 11 DO
[A38F] <0304>                lFilePosL := ((4 * (lvFF98 - 1)) + 1)    // was a 'mov'
[A395] <1000>                FileGet #lTonsFile, pos ((4 * (lvFF98 - 1)) + 1), ES:lTons2((4 * (lvFF98 + lvFFAE))), 4 bytes
[A3BA] <1000>              NEXT lvFF98
[A3C2] <1000>              Close #lTonsFile
[A3CC] <1000>            ENDIF
[A3CC] <0304>            lvFF96 := 418    // was a 'mov'
[A3DA] <1000>            lvFF92 := GetString_10AE_CBBA (lvFF96)
[A3E8] <1000>            LogString_10AE_754B (lvFF92)
[A3F2] <0304>            lVcrFile := FreeFile()    // was a 'mov'
[A400] <1000>            Open (gGameDir ++ "VCR.HST") As #lVcrFile For -1, 2
[A40D] <1000>            Close #lVcrFile
[A417] <0304>            lNumVcrs := 0    // was a 'mov'
[A41C] <0304>            lvFF8C := 1    // was a 'mov'
[A421] <1000>            FOR lvFF84 := 1 TO 500 DO
[A428] <0304>              lMinFCBO := 1050    // was a 'mov'
[A42D] <0304>              lDoFight := 0    // was a 'mov'
[A432] <1000>              FOR lvFF86 := 1 TO 500 DO
[A448] <1000>                IF gShipFCBO((2 * lvFF86)) < lMinFCBO THEN
[A458] <1000>                  IF gShipOwners((2 * lvFF86)) > 0 THEN
[A46C] <0304>                    lMinFCBO := gShipFCBO((2 * lvFF86))    // was a 'mov'
[A472] <0304>                    lDoFight := lvFF86    // was a 'mov'
[A475] <1000>                  ENDIF
[A475] <1000>                ENDIF
[A479] <1000>              NEXT lvFF86
[A481] <1000>              IF lDoFight > 0 THEN
[A498] <0304>                lShipsInFCodeOrder((2 * lvFF8C)) := lDoFight    // was a 'mov'
[A499] <0304>                AX := lDoFight    // was a 'mov'
[A49B] <1000>                ++lvFF8C
[A49E] <010E>       shl      AX, 0001h
[A4AB] <0304>                gShipFCBO(AX) := 1050    // was a 'mov'
[A4B0] <1000>              ELSE
[A4B3] <1000>                BREAK 0xA4BA
[A4B5] <1000>              ENDIF
[A4BA] <1000>            NEXT lvFF84
[A4D0] <1000>            Open (gGameDir ++ "VCR.HST") As #lVcrFile For -1, 32
[A4DD] <1000>            FOR lRightShip := 500 DOWNTO 1 DO
[A4E4] <1000>              FOR lLeftShip := 1 TO 500 DO
[A4EB] <0304>                AX := lLeftShip    // was a 'mov'
[A4EA] <1000>                IF lLeftShip <> lRightShip THEN
[A504] <1000>                  IF gShipOwners((2 * lRightShip)) > 0 THEN
[A50D] <010E>           shl      AX, 0001h
[A517] <1000>                    IF gShipOwners(AX) > 0 THEN
[A533] <1000>                      IF gShipOwners((2 * lRightShip)) <> gShipOwners(AX) THEN
[A551] <1000>                        IF gShipX((2 * lRightShip)) = gShipX(AX) THEN
[A56F] <1000>                          IF gShipY((2 * lRightShip)) = gShipY(AX) THEN
[A585] <0304>                            lvFF82 := gShipOwners((2 * lRightShip))    // was a 'mov'
[A593] <0304>                            lvFF80 := gShipOwners(AX)    // was a 'mov'
[A5A3] <0304>                            lvFF7E := PlayerAllowsAlly_0000_578A (lvFF80, lvFF82)    // was a 'mov'
[A5B9] <0304>                            gShipOwners((2 * lLeftShip)) := lvFF80    // was a 'mov'
[A5CB] <0304>                            gShipOwners((2 * lRightShip)) := lvFF82    // was a 'mov'
[A5CE] <1000>                            IF lvFF7E = 0 THEN
[A5DC] <0304>                              gShipId := lRightShip    // was a 'mov'
[A5DF] <1000>                              ShipLoad_0000_668A ()
[A5E4] <1000>                              IF (gShip.Mission = 8 && lLeftShip = gShip.InterceptId) THEN
[A5FE] <0304>                                lvFF78 := gShip.Hull    // was a 'mov'
[A63A] <1000>                                IF ((((((((lvFF78 = 21 || lvFF78 = 22) || lvFF78 = 25) || lvFF78 = 26) || lvFF78 = 27) || lvFF78 = 28) || lvFF78 = 29) || lvFF78 = 47) || lvFF78 = 31) THEN
[A644] <1000>                                  GOSUB 0xAA2D	;  FIXME: better formatting
[A64C] <1000>                                ELSE
[A687] <1000>                                  IF ((((((((lvFF78 = 32 || lvFF78 = 33) || lvFF78 = 45) || lvFF78 = 38) || lvFF78 = 36) || lvFF78 = 43) || lvFF78 = 46) || lvFF78 = 44) || lvFF78 = 45) THEN
[A691] <1000>                                    GOSUB 0xAA2D	;  FIXME: better formatting
[A69C] <1000>                                  ENDIF
[A69B] <1000>                                ENDIF
[A69C] <1000>                              ENDIF
[A69C] <1000>                            ENDIF
[A69C] <1000>                          ENDIF
[A69C] <1000>                        ENDIF
[A69C] <1000>                      ENDIF
[A69C] <1000>                    ENDIF
[A69C] <1000>                  ENDIF
[A69C] <1000>                ENDIF
[A6A1] <1000>              NEXT lLeftShip
[A6B2] <1000>            NEXT lRightShip
[A6BE] <1000>            FOR lvFF6E := 1 TO 500 DO
[A6D1] <1000>              IF lShipsInFCodeOrder((2 * lvFF6E)) > 0 THEN
[A6E5] <0304>                lRightShip := lShipsInFCodeOrder((2 * lvFF6E))    // was a 'mov'
[A6E9] <1000>                FOR lvFF70 := 1 TO 500 DO
[A6FD] <1000>                  IF lShipsInFCodeOrder((2 * lvFF70)) > 0 THEN
[A711] <0304>                    lLeftShip := lShipsInFCodeOrder((2 * lvFF70))    // was a 'mov'
[A716] <0304>                    AX := lShipsInFCodeOrder((2 * lvFF70))    // was a 'mov'
[A715] <1000>                    IF (lShipsInFCodeOrder((2 * lvFF70)) <> lRightShip && gShipOwners((2 * lRightShip)) > 0) THEN
[A738] <010E>             shl      AX, 0001h
[A742] <1000>                      IF (gShipOwners(AX) > 0 && gShipOwners((2 * lRightShip)) <> gShipOwners(AX)) THEN
[A77C] <1000>                        IF gShipX((2 * lRightShip)) = gShipX(AX) THEN
[A79A] <1000>                          IF gShipY((2 * lRightShip)) = gShipY(AX) THEN
[A7B0] <0304>                            lvFF76 := gShipOwners((2 * lRightShip))    // was a 'mov'
[A7BF] <0304>                            lvFF74 := gShipOwners(AX)    // was a 'mov'
[A7D2] <0304>                            lvFF72 := PlayerAllowsAlly_0000_578A (lvFF74, lvFF76)    // was a 'mov'
[A7E9] <0304>                            gShipOwners((2 * lLeftShip)) := lvFF74    // was a 'mov'
[A7FC] <0304>                            gShipOwners((2 * lRightShip)) := lvFF76    // was a 'mov'
[A7FF] <1000>                            IF lvFF72 = 0 THEN
[A809] <1000>                              GOSUB 0xAA2D	;  FIXME: better formatting
[A811] <1000>                            ENDIF
[A811] <1000>                          ENDIF
[A811] <1000>                        ENDIF
[A811] <1000>                      ENDIF
[A811] <1000>                    ENDIF
[A811] <1000>                  ENDIF
[A816] <1000>                NEXT lvFF70
[A822] <1000>              ENDIF
[A827] <1000>            NEXT lvFF6E
[A833] <1000>            Close #lVcrFile
[A842] <0304>            lTonsFile := FreeFile()    // was a 'mov'
[A850] <1000>            Open (gGameDir ++ "TONS.HST") As #lTonsFile For -1, 32
[A85D] <1000>            FOR lvFF98 := 1 TO 11 DO
[A86B] <0304>              lFilePosL := ((4 * (lvFF98 - 1)) + 1)    // was a 'mov'
[A886] <0304>              lvFF6C := (4 * (lvFF98 + lvFFC4))    // was a 'mov'
[A89D] <0304>              lvFF68L := lTons((4 * (lvFF98 + lvFFC4)))L    // was a 'mov'
[A8C8] <0304>              lTons(lvFF6C)L := (lTons((4 * ((2 * lvFFC4) + lvFF98)))L + lvFF68L)    // was a 'mov'
[A8CC] <0304>              ES := word ptr DS:[@lTons+0002h]    // was a 'mov'
[A8CF] <1000>              FilePut #lTonsFile, pos lFilePosL, ES:lTons(lvFF6C), 4 bytes
[A8E9] <1000>              FilePut #lTonsFile, pos (lFilePosL + 44L), ES:lTons((4 * ((2 * lvFFC4) + lvFF98))), 4 bytes
[A91C] <1000>            NEXT lvFF98
[A927] <1000>            Close #lTonsFile
[A936] <0304>            lTonsFile := FreeFile()    // was a 'mov'
[A944] <1000>            Open (gGameDir ++ "TONS2.HST") As #lTonsFile For -1, 32
[A951] <1000>            FOR lvFF98 := 1 TO 11 DO
[A95F] <0304>              lFilePosL := ((4 * (lvFF98 - 1)) + 1)    // was a 'mov'
[A97A] <0304>              lvFF66 := (4 * (lvFF98 + lvFFAE))    // was a 'mov'
[A991] <0304>              lvFF62L := lTons2((4 * (lvFF98 + lvFFAE)))L    // was a 'mov'
[A9BC] <0304>              lTons2(lvFF66)L := (lTons2((4 * ((2 * lvFFAE) + lvFF98)))L + lvFF62L)    // was a 'mov'
[A9C0] <0304>              ES := word ptr DS:[@lTons2+0002h]    // was a 'mov'
[A9C3] <1000>              FilePut #lTonsFile, pos lFilePosL, ES:lTons2(lvFF66), 4 bytes
[A9DD] <1000>              FilePut #lTonsFile, pos (lFilePosL + 44L), ES:lTons2((4 * ((2 * lvFFAE) + lvFF98))), 4 bytes
[AA10] <1000>            NEXT lvFF98
[AA1B] <1000>            Close #lTonsFile
[AA25] <1000>            GOTO 0xD36D	; FIXME: better formatting


[AA31] <0304>            gShipId := lRightShip    // was a 'mov'
[AA34] <1000>            ShipLoad_0000_668A ()
[AA39] <1000>            Block(DS:gOtherShip.Id, 107) := Block(DS:gShip.Id, 107)
[AA52] <0304>            gShipId := lLeftShip    // was a 'mov'
[AA55] <1000>            ShipLoad_0000_668A ()
[AA5A] <0304>            lDoFight := 0    // was a 'mov'
[AA62] <1000>            IF gOtherShip.Player = gShip.PE THEN
[AA68] <0304>              lDoFight := 1    // was a 'mov'
[AA6D] <1000>            ENDIF
[AA70] <1000>            IF gShip.Player = gOtherShip.PE THEN
[AA76] <0304>              lDoFight := 1    // was a 'mov'
[AA7B] <1000>            ENDIF
[AA82] <1000>            IF (gShip.Mission = 4 || gOtherShip.Mission = 4) THEN
[AA89] <0304>              lDoFight := 1    // was a 'mov'
[AA8E] <1000>            ENDIF
[AA8E] <1000>            IF gConfig.CloakedShipsAttack = 0 THEN
[AAB9] <1000>              IF (gShipCloaked((2 * lRightShip)) = 1 || gShipCloaked((2 * lLeftShip)) = 1) THEN
[AABF] <0304>                lDoFight := 0    // was a 'mov'
[AAC4] <1000>              ENDIF
[AAC4] <1000>            ELSE
[AAD6] <1000>              IF gShipCloaked((2 * lRightShip)) = 1 THEN
[AAE8] <1000>                IF gShipCloaked((2 * lLeftShip)) = 1 THEN
[AAEE] <0304>                  lDoFight := 0    // was a 'mov'
[AAF3] <1000>                ENDIF
[AAF3] <1000>              ENDIF
[AB02] <1000>              IF gShipCloaked((2 * lLeftShip)) = 1 THEN
[AB0B] <1000>                IF gOtherShip.Player <> gShip.PE THEN
[AB11] <0304>                  lDoFight := 0    // was a 'mov'
[AB16] <1000>                ENDIF
[AB16] <1000>              ENDIF
[AB25] <1000>              IF gShipCloaked((2 * lRightShip)) = 1 THEN
[AB2E] <1000>                IF gShip.Player <> gOtherShip.PE THEN
[AB34] <0304>                  lDoFight := 0    // was a 'mov'
[AB39] <1000>                ENDIF
[AB39] <1000>              ENDIF
[AB38] <1000>            ENDIF
[AB40] <1000>            IF (gShip.Player = 0 || gOtherShip.Player = 0) THEN
[AB47] <0304>              lDoFight := 0    // was a 'mov'
[AB4C] <1000>            ENDIF
[AB53] <1000>            IF (gShip.N = 0 || gOtherShip.N = 0) THEN
[AB5A] <0304>              lDoFight := 0    // was a 'mov'
[AB5F] <1000>            ENDIF
[AB5F] <1000>            IF ((gShip.NumBeams = 0 && gOtherShip.NumBeams = 0) && gShip.NumBays = 0) THEN
[AB7A] <1000>              IF gOtherShip.NumBays = 0 THEN
[AB81] <0304>                lDoFight := 0    // was a 'mov'
[AB86] <1000>              ENDIF
[AB86] <1000>            ENDIF
[AB93] <1000>            IF ((Packed(DS:gShip.FCode, 3) = Packed(DS:gOtherShip.FCode, 3) && Packed(DS:gShip.FCode, 3) <> "NTP") && Packed(DS:gShip.FCode, 3) <> "mkt") THEN
[ABE6] <1000>              IF Packed(DS:gShip.FCode, 3) <> "lfm" THEN
[ABF1] <0304>                lDoFight := 0    // was a 'mov'
[ABF6] <1000>              ENDIF
[ABF6] <1000>            ENDIF
[AC33] <1000>            IF (gShipX((2 * lRightShip)) <> gShipX((2 * lLeftShip)) || gShipY((2 * lRightShip)) <> gShipY((2 * lLeftShip))) THEN
[AC38] <0304>              lDoFight := 0    // was a 'mov'
[AC3D] <1000>            ENDIF
[AC3D] <1000>            IF gShip.Crew = 10 THEN
[AC44] <1000>              IF gShip.Mission = 0 THEN
[AC4B] <0304>                lDoFight := 0    // was a 'mov'
[AC50] <1000>              ENDIF
[AC50] <1000>            ENDIF
[AC50] <1000>            IF lvFF60 = 10 THEN
[AC57] <1000>              IF lvFF5E = 0 THEN
[AC5E] <0304>                lDoFight := 0    // was a 'mov'
[AC63] <1000>              ENDIF
[AC63] <1000>            ENDIF
[AC63] <1000>            IF lDoFight = 1 THEN
[AC6C] <0304>              lvFF5AL := 65955L    // was a 'mov'
[AC82] <1000>              lvFF56 := GetString_10AE_CBBA (lvFF5A)
[AC92] <1000>              LogString_10AE_754B (lvFF56)
[AC9E] <1000>              Randomize Timer()
[ACB7] <1000>              dword ptr DS:[060Ah] := ERND((Trunc((dword ptr DS:[@Random()] * 110)) + 1))
[ACD2] <0304>              gVcr.Temp := 0    // was a 'mov'
[ACD8] <0304>              gVcr.Type := 0    // was a 'mov'
[ACE1] <1000>              HullLoad_0000_653E (gShip.Hull)
[ACE9] <0304>              gVcr.MassL := gHull.Mass    // was a 'mov'
[ACF5] <0304>              lLeftPBPValue := ((gHull.Mass + 100) \ 100)    // was a 'mov'
[ACFC] <0304>              lLeftTonsValue := gHull.Mass    // was a 'mov'
[AD00] <0304>              lLeftTons2Value := gHull.Mass    // was a 'mov'
[AD08] <0304>              lvFFC8L := gHull.Tech    // was a 'mov'
[AD1C] <0304>              lLeftTons2Value := <(gHull.Tech * lLeftTons2Value)    // was a 'mov'
[AD23] <1000>              EngineLoad_0000_64A0 (gShip.Engine)
[AD28] <1000>              IF gConfig.AllowESB = 1 THEN
[AD2F] <1000>                gVcr.MassL := ERND((gVcr.MassL + ((gEngine.Cost * gConfig.ESBRate) / 100)))
[AD4D] <1000>              ENDIF
[AD50] <0304>              gVcr.Left.Picture := gHull.Picture    // was a 'mov'
[AD53] <1000>              IF gVcr.Left.Picture = 16 THEN
[AD5A] <1000>                IF gShip.Engine = 9 THEN
[AD61] <0304>                  gVcr.Left.Picture := 30    // was a 'mov'
[AD67] <1000>                ENDIF
[AD67] <1000>              ENDIF
[AD6A] <0304>              lLeftMValue := gHull.NeedM    // was a 'mov'
[AD71] <0304>              lLeftDValue := gHull.NeedD    // was a 'mov'
[AD78] <0304>              lLeftTValue := gHull.NeedT    // was a 'mov'
[AD7F] <0304>              lLeftNValue := gShip.N    // was a 'mov'
[AD86] <1000>              HullLoad_0000_653E (gOtherShip.Hull)
[AD8E] <0304>              gVcr.MassR := gHull.Mass    // was a 'mov'
[AD9A] <0304>              lRightPBPValue := ((gHull.Mass + 100) \ 100)    // was a 'mov'
[ADA1] <1000>              EngineLoad_0000_64A0 (gOtherShip.Engine)
[ADA6] <1000>              IF gConfig.AllowESB = 1 THEN
[ADAD] <1000>                gVcr.MassR := ERND((gVcr.MassR + ((gEngine.Cost * gConfig.ESBRate) / 100)))
[ADCB] <1000>              ENDIF
[ADCE] <0304>              gVcr.Right.Picture := gHull.Picture    // was a 'mov'
[ADD1] <1000>              IF gVcr.Right.Picture = 16 THEN
[ADD8] <1000>                IF gOtherShip.Engine = 9 THEN
[ADDF] <0304>                  gVcr.Right.Picture := 30    // was a 'mov'
[ADE5] <1000>                ENDIF
[ADE5] <1000>              ENDIF
[ADE8] <0304>              lRightMValue := gHull.NeedM    // was a 'mov'
[ADEF] <0304>              lRightTonsValue := gHull.Mass    // was a 'mov'
[ADF3] <0304>              lRightTons2Value := gHull.Mass    // was a 'mov'
[ADFB] <0304>              lvFFC8L := gHull.Tech    // was a 'mov'
[AE0F] <0304>              lRightTons2Value := <(gHull.Tech * lRightTons2Value)    // was a 'mov'
[AE16] <0304>              lRightDValue := gHull.NeedD    // was a 'mov'
[AE1D] <0304>              lRightTValue := gHull.NeedT    // was a 'mov'
[AE24] <0304>              lRightNValue := gOtherShip.N    // was a 'mov'
[AE25] <1000>              Packed(DS:gVcr.Left.Name, 20) := Packed(DS:gShip.Name, 20)
[AE3D] <1000>              Packed(DS:gVcr.Right.Name, 20) := Packed(DS:gOtherShip.Name, 20)
[AE55] <0304>              gVcr.Left.Damage := gShip.Damage    // was a 'mov'
[AE5B] <0304>              gVcr.Right.Damage := gOtherShip.Damage    // was a 'mov'
[AE61] <0304>              gVcr.Left.Crew := gShip.Crew    // was a 'mov'
[AE67] <0304>              gVcr.Right.Crew := gOtherShip.Crew    // was a 'mov'
[AE6D] <0304>              gVcr.Left.Id := gShip.Id    // was a 'mov'
[AE73] <0304>              gVcr.Right.Id := gOtherShip.Id    // was a 'mov'
[AE79] <0304>              gVcr.Left.Player := gShip.Player    // was a 'mov'
[AE7F] <0304>              gVcr.Right.Player := gOtherShip.Player    // was a 'mov'
[AE85] <0304>              gVcr.Left.BeamType := gShip.BeamType    // was a 'mov'
[AE88] <1000>              IF gVcr.Left.BeamType > 10 THEN
[AE8F] <0304>                gVcr.Left.BeamType := 10    // was a 'mov'
[AE95] <1000>              ENDIF
[AE98] <0304>              gVcr.Left.NumBeams := gShip.NumBeams    // was a 'mov'
[AE9E] <0304>              gVcr.Left.NumBays := gShip.NumBays    // was a 'mov'
[AEAE] <1000>              IF Packed(DS:gShip.FCode, 3) = "NTP" THEN
[AEB9] <0304>                gVcr.Left.NumBays := 0    // was a 'mov'
[AEBF] <1000>              ENDIF
[AEC2] <0304>              gVcr.Left.TorpType := gShip.TorpType    // was a 'mov'
[AEC8] <0304>              gVcr.Left.Ammo := gShip.Ammo    // was a 'mov'
[AECE] <0304>              gVcr.Left.NumTubes := gShip.NumTubes    // was a 'mov'
[AEDE] <1000>              IF Packed(DS:gShip.FCode, 3) = "NTP" THEN
[AEE9] <0304>                gVcr.Left.NumTubes := 0    // was a 'mov'
[AEEF] <1000>              ENDIF
[AEEF] <1000>              Packed(DS:gVcr.Right.Name, 20) := Packed(DS:gOtherShip.Name, 20)
[AF07] <0304>              gVcr.Right.Damage := gOtherShip.Damage    // was a 'mov'
[AF0D] <0304>              gVcr.Right.Crew := gOtherShip.Crew    // was a 'mov'
[AF13] <0304>              gVcr.Right.Id := gOtherShip.Id    // was a 'mov'
[AF19] <0304>              gVcr.Right.Player := gOtherShip.Player    // was a 'mov'
[AF1F] <0304>              gVcr.Right.BeamType := gOtherShip.BeamType    // was a 'mov'
[AF22] <1000>              IF gVcr.Right.BeamType > 10 THEN
[AF29] <0304>                gVcr.Right.BeamType := 10    // was a 'mov'
[AF2F] <1000>              ENDIF
[AF32] <0304>              gVcr.Right.NumBeams := gOtherShip.NumBeams    // was a 'mov'
[AF38] <0304>              gVcr.Right.NumBays := gOtherShip.NumBays    // was a 'mov'
[AF48] <1000>              IF Packed(DS:gOtherShip.FCode, 3) = "NTP" THEN
[AF53] <0304>                gVcr.Right.NumBays := 0    // was a 'mov'
[AF59] <1000>              ENDIF
[AF5C] <0304>              gVcr.Right.TorpType := gOtherShip.TorpType    // was a 'mov'
[AF62] <0304>              gVcr.Right.Ammo := gOtherShip.Ammo    // was a 'mov'
[AF68] <0304>              gVcr.Right.NumTubes := gOtherShip.NumTubes    // was a 'mov'
[AF78] <1000>              IF Packed(DS:gOtherShip.FCode, 3) = "NTP" THEN
[AF83] <0304>                gVcr.Right.NumTubes := 0    // was a 'mov'
[AF89] <1000>              ENDIF
[AF9B] <0304>              gVcr.ShieldL := gShipShield((2 * lLeftShip))    // was a 'mov'
[AFAD] <0304>              gVcr.ShieldR := gShipShield((2 * lRightShip))    // was a 'mov'
[AFB7] <0304>              lLeftShieldLimit := (100 - gVcr.Left.Damage)    // was a 'mov'
[AFC2] <0304>              lRightShieldLimit := (100 - gVcr.Right.Damage)    // was a 'mov'
[AFC6] <1000>              IF (100 - gVcr.Left.Damage) < gVcr.ShieldL THEN
[AFCC] <0304>                gVcr.ShieldL := (100 - gVcr.Left.Damage)    // was a 'mov'
[AFCF] <1000>              ENDIF
[AFD3] <1000>              IF lRightShieldLimit < gVcr.ShieldR THEN
[AFD9] <0304>                gVcr.ShieldR := lRightShieldLimit    // was a 'mov'
[AFDC] <1000>              ENDIF
[AFDC] <1000>              IF (Random() > 0.4 && gVcr.MassR > 140) THEN
[AFFF] <1000>                IF gVcr.Left.NumBays > 0 THEN
[B006] <1000>                  gVcr.MassR := gVcr.MassR + 360
[B00C] <1000>                ENDIF
[B00C] <1000>              ENDIF
[B013] <1000>              IF (gVcr.Left.Player <> 1 || gConfig.AllowFedCrewBonus <> 1) THEN
[B028] <0304>                lLeftWeaponLimit := (10 - (gVcr.Left.Damage \ 10))    // was a 'mov'
[B02C] <1000>                IF gVcr.Left.Player = 2 THEN
[B038] <0304>                  lLeftWeaponLimit := (15 - (gVcr.Left.Damage \ 10))    // was a 'mov'
[B03C] <1000>                ENDIF
[B03C] <1000>                IF lLeftWeaponLimit < 0 THEN
[B043] <0304>                  lLeftWeaponLimit := 0    // was a 'mov'
[B049] <1000>                ENDIF
[B04D] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumBays THEN
[B053] <0304>                  gVcr.Left.NumBays := lLeftWeaponLimit    // was a 'mov'
[B056] <1000>                ENDIF
[B05A] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumTubes THEN
[B060] <0304>                  gVcr.Left.NumTubes := lLeftWeaponLimit    // was a 'mov'
[B063] <1000>                ENDIF
[B067] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumBeams THEN
[B06D] <0304>                  gVcr.Left.NumBeams := lLeftWeaponLimit    // was a 'mov'
[B070] <1000>                ENDIF
[B070] <1000>              ENDIF
[B077] <1000>              IF (gVcr.Right.Player <> 1 || gConfig.AllowFedCrewBonus <> 1) THEN
[B08C] <0304>                lRightWeaponLimit := (10 - (gVcr.Right.Damage \ 10))    // was a 'mov'
[B090] <1000>                IF gVcr.Right.Player = 2 THEN
[B09C] <0304>                  lRightWeaponLimit := (15 - (gVcr.Right.Damage \ 10))    // was a 'mov'
[B0A0] <1000>                ENDIF
[B0A0] <1000>                IF lRightWeaponLimit < 0 THEN
[B0A7] <0304>                  lRightWeaponLimit := 0    // was a 'mov'
[B0AD] <1000>                ENDIF
[B0B1] <1000>                IF lRightWeaponLimit < gVcr.Right.NumBays THEN
[B0B7] <0304>                  gVcr.Right.NumBays := lRightWeaponLimit    // was a 'mov'
[B0BA] <1000>                ENDIF
[B0BE] <1000>                IF lRightWeaponLimit < gVcr.Right.NumTubes THEN
[B0C4] <0304>                  gVcr.Right.NumTubes := lRightWeaponLimit    // was a 'mov'
[B0C7] <1000>                ENDIF
[B0CB] <1000>                IF lRightWeaponLimit < gVcr.Right.NumBeams THEN
[B0D1] <0304>                  gVcr.Right.NumBeams := lRightWeaponLimit    // was a 'mov'
[B0D4] <1000>                ENDIF
[B0D4] <1000>              ENDIF
[B0D4] <1000>              IF gConfig.AllowFedCrewBonus = 1 THEN
[B0DE] <1000>                IF gVcr.Left.Player = 1 THEN
[B0E8] <1000>                  IF gVcr.Left.NumBays > 0 THEN
[B0EF] <1000>                    gVcr.Left.NumBays := gVcr.Left.NumBays + 3
[B0F4] <1000>                  ENDIF
[B0F4] <1000>                  gVcr.MassL := gVcr.MassL + 50
[B0F9] <1000>                  gVcr.ShieldL := gVcr.ShieldL + 25
[B0FE] <1000>                  IF gVcr.ShieldL > 100 THEN
[B105] <0304>                    gVcr.ShieldL := 100    // was a 'mov'
[B10B] <1000>                  ENDIF
[B10B] <1000>                ENDIF
[B10B] <1000>                IF gVcr.Right.Player = 1 THEN
[B115] <1000>                  IF gVcr.Right.NumBays > 0 THEN
[B11C] <1000>                    gVcr.Right.NumBays := gVcr.Right.NumBays + 3
[B121] <1000>                  ENDIF
[B121] <1000>                  gVcr.MassR := gVcr.MassR + 50
[B126] <1000>                  gVcr.ShieldR := gVcr.ShieldR + 25
[B12B] <1000>                  IF gVcr.ShieldR > 100 THEN
[B132] <0304>                    gVcr.ShieldR := 100    // was a 'mov'
[B138] <1000>                  ENDIF
[B138] <1000>                ENDIF
[B138] <1000>              ENDIF
[B138] <0304>              lvFFE6L := 100L    // was a 'mov'
[B142] <1000>              ++lNumVcrs
[B149] <0304>              lvFF2EL := lNumVcrs    // was a 'mov'
[B16A] <0304>              lFilePosL := ((lvFFE6L * (lNumVcrs - 1L)) + 3L)    // was a 'mov'
[B170] <1000>              FilePut #lVcrFile, pos >((lvFFE6L * (lNumVcrs - 1L)) + 3L):<((lvFFE6L * (lNumVcrs - 1L)) + 3L), DS:gVcr.Seed, 100 bytes
[B183] <1000>              FilePut #lVcrFile, pos 1L, DS:lNumVcrs, 2 bytes
[B198] <0304>              lvFF2C := 420    // was a 'mov'
[B1A8] <1000>              lvFF28 := GetString_10AE_CBBA (lvFF2C)
[B1B7] <1000>              Print1 lvFF28
[B1C0] <1000>              VcrRun_0EE2_02EE (gVcr.Seed)
[B1C5] <1000>              lvFF24 := ""
[B1D7] <1000>              LogString_10AE_754B (lvFF24)
[B1EE] <0304>              gShipShield((2 * lLeftShip)) := gVcr.ShieldL    // was a 'mov'
[B200] <0304>              gShipShield((2 * lRightShip)) := gVcr.ShieldR    // was a 'mov'
[B203] <0304>              lLeftShipCaptured := 0    // was a 'mov'
[B209] <0304>              lRightShipCaptured := 0    // was a 'mov'
[B20F] <0304>              lLeftShipDied := 0    // was a 'mov'
[B215] <0304>              lRightShipDied := 0    // was a 'mov'
[B21E] <0304>              gShipId := gVcr.Left.Id    // was a 'mov'
[B221] <1000>              ShipLoad_0000_668A ()
[B229] <0304>              gShip.Damage := gVcr.Left.Damage    // was a 'mov'
[B22F] <0304>              gShip.Ammo := gVcr.Left.Ammo    // was a 'mov'
[B235] <0304>              gShip.Crew := gVcr.Left.Crew    // was a 'mov'
[B238] <1000>              IF gShip.Mission = 8 THEN
[B23F] <0304>                gShip.Mission := 0    // was a 'mov'
[B245] <0304>                gShip.InterceptId := 0    // was a 'mov'
[B24B] <1000>              ENDIF
[B259] <1000>              IF ((gVcr.Left.Damage > 99 && gVcr.Left.Player <> 2) || (gVcr.Left.Damage > 149 && gVcr.Left.Player = 2)) THEN
[B268] <0304>                lLeftShipDied := 1    // was a 'mov'
[B27F] <0304>                gShipOwners((2 * lLeftShip)) := 0    // was a 'mov'
[B284] <0304>                gShip.Player := 0    // was a 'mov'
[B295] <0304>                gShipExperience((2 * lLeftShip)) := 0    // was a 'mov'
[B29A] <1000>              ELSE
[B29D] <1000>                IF gVcr.Left.Crew < 1 THEN
[B2A4] <0304>                  lLeftShipCaptured := 1    // was a 'mov'
[B2BC] <0304>                  gShipOwners((2 * lLeftShip)) := gVcr.Right.Player    // was a 'mov'
[B2BF] <0304>                  gShip.Player := gVcr.Right.Player    // was a 'mov'
[B2C2] <0304>                  gShip.Crew := 10    // was a 'mov'
[B2C8] <0304>                  gShip.Mission := 0    // was a 'mov'
[B2CE] <0304>                  gShip.PE := 0    // was a 'mov'
[B2D4] <1000>                ENDIF
[B2D3] <1000>              ENDIF
[B2D4] <1000>              IF ((gShip.Player = 6 && lLeftShipDied = 0) && lLeftShipCaptured = 0) THEN
[B300] <1000>                IF ((gVcr.Right.Damage > 99 && gVcr.Right.Player <> 2) || (gVcr.Right.Damage > 149 && gVcr.Right.Player = 2)) THEN
[B318] <1000>                  HullLoad_0000_653E (gShip.Hull)
[B321] <1000>                  gShip.N := gShip.N + lRightNValue
[B328] <1000>                  IF gHull.Fuel < gShip.N THEN
[B32E] <0304>                    gShip.N := gHull.Fuel    // was a 'mov'
[B331] <1000>                  ENDIF
[B331] <1000>                  DO
[B332] <1000>                    lvFF1A := ShipFreeCargo_0000_245B ()
[B33B] <1000>                    IF (lvFF1A <= 0 || lRightMValue <= 0) THEN BREAK 0xB351
[B349] <1000>                    --lRightMValue
[B34D] <1000>                    ++gShip.M
[B351] <1000>                  LOOP
[B353] <1000>                  DO
[B354] <1000>                    lvFF18 := ShipFreeCargo_0000_245B ()
[B35D] <1000>                    IF (lvFF18 <= 0 || lRightTValue <= 0) THEN BREAK 0xB373
[B36B] <1000>                    --lRightTValue
[B36F] <1000>                    ++gShip.T
[B373] <1000>                  LOOP
[B375] <1000>                  DO
[B376] <1000>                    lvFF16 := ShipFreeCargo_0000_245B ()
[B37F] <1000>                    IF (lvFF16 <= 0 || lRightDValue <= 0) THEN BREAK 0xB395
[B38D] <1000>                    --lRightDValue
[B391] <1000>                    ++gShip.D
[B395] <1000>                  LOOP
[B398] <0304>                  lvFF14 := 421    // was a 'mov'
[B3A8] <1000>                  lvFF10 := GetString_10AE_CBBA (lvFF14)
[B3CB] <1000>                  lvFF00 := (lvFF10 ++ Packed(DS:gCR, 1))
[B3D6] <0304>                  lvFF0E := 268    // was a 'mov'
[B3E6] <1000>                  lvFF0A := GetString_10AE_CBBA (lvFF0E)
[B428] <1000>                  lvFF00 := (((lvFF00 ++ lvFF0A) ++ Packed(DS:gShip.Name, 20)) ++ Packed(DS:gCR, 1))
[B433] <0304>                  lvFF08 := 422    // was a 'mov'
[B443] <1000>                  lvFF04 := GetString_10AE_CBBA (lvFF08)
[B452] <1000>                  lvFF00 := lvFF00 ++ lvFF04
[B462] <0304>                  lvFEFE := 6    // was a 'mov'
[B468] <1000>                  lvFEFA := "s0"
[B487] <1000>                  SendMessage_0000_AD12 (lvFF00, gShip.Id, lvFEFA, lvFEFE)
[B48C] <1000>                ENDIF
[B48C] <1000>              ENDIF
[B48F] <0304>              gShipId := gVcr.Left.Id    // was a 'mov'
[B492] <1000>              ShipSave_0000_D099 ()
[B49A] <0304>              gShipId := gVcr.Right.Id    // was a 'mov'
[B49D] <1000>              ShipLoad_0000_668A ()
[B4A5] <0304>              gShip.Damage := gVcr.Right.Damage    // was a 'mov'
[B4AB] <0304>              gShip.Ammo := gVcr.Right.Ammo    // was a 'mov'
[B4B1] <0304>              gShip.Crew := gVcr.Right.Crew    // was a 'mov'
[B4B4] <1000>              IF gShip.Mission = 8 THEN
[B4BB] <0304>                gShip.Mission := 0    // was a 'mov'
[B4C1] <0304>                gShip.InterceptId := 0    // was a 'mov'
[B4C7] <1000>              ENDIF
[B4D5] <1000>              IF ((gVcr.Right.Damage > 99 && gVcr.Right.Player <> 2) || (gVcr.Right.Damage > 149 && gVcr.Right.Player = 2)) THEN
[B4E4] <0304>                lRightShipDied := 1    // was a 'mov'
[B4FB] <0304>                gShipOwners((2 * lRightShip)) := 0    // was a 'mov'
[B500] <0304>                gShip.Player := 0    // was a 'mov'
[B511] <0304>                gShipExperience((2 * lRightShip)) := 0    // was a 'mov'
[B516] <1000>              ELSE
[B519] <1000>                IF gVcr.Right.Crew < 1 THEN
[B520] <0304>                  lRightShipCaptured := 1    // was a 'mov'
[B538] <0304>                  gShipOwners((2 * lRightShip)) := gVcr.Left.Player    // was a 'mov'
[B53B] <0304>                  gShip.Player := gVcr.Left.Player    // was a 'mov'
[B53E] <0304>                  gShip.Crew := 10    // was a 'mov'
[B544] <0304>                  gShip.Mission := 0    // was a 'mov'
[B54A] <0304>                  gShip.PE := 0    // was a 'mov'
[B550] <1000>                ENDIF
[B54F] <1000>              ENDIF
[B550] <1000>              IF ((gShip.Player = 6 && lRightShipDied = 0) && lRightShipCaptured = 0) THEN
[B57C] <1000>                IF ((gVcr.Left.Damage > 99 && gVcr.Left.Player <> 2) || (gVcr.Left.Damage > 149 && gVcr.Left.Player = 2)) THEN
[B594] <1000>                  HullLoad_0000_653E (gShip.Hull)
[B59D] <1000>                  gShip.N := gShip.N + lLeftNValue
[B5A4] <1000>                  IF gHull.Fuel < gShip.N THEN
[B5AA] <0304>                    gShip.N := gHull.Fuel    // was a 'mov'
[B5AD] <1000>                  ENDIF
[B5AD] <1000>                  DO
[B5AE] <1000>                    lvFEF8 := ShipFreeCargo_0000_245B ()
[B5B7] <1000>                    IF (lvFEF8 <= 0 || lLeftMValue <= 0) THEN BREAK 0xB5CD
[B5C5] <1000>                    --lLeftMValue
[B5C9] <1000>                    ++gShip.M
[B5CD] <1000>                  LOOP
[B5CF] <1000>                  DO
[B5D0] <1000>                    lvFEF6 := ShipFreeCargo_0000_245B ()
[B5D9] <1000>                    IF (lvFEF6 <= 0 || lLeftTValue <= 0) THEN BREAK 0xB5EF
[B5E7] <1000>                    --lLeftTValue
[B5EB] <1000>                    ++gShip.T
[B5EF] <1000>                  LOOP
[B5F1] <1000>                  DO
[B5F2] <1000>                    lvFEF4 := ShipFreeCargo_0000_245B ()
[B5FB] <1000>                    IF (lvFEF4 <= 0 || lLeftDValue <= 0) THEN BREAK 0xB611
[B609] <1000>                    --lLeftDValue
[B60D] <1000>                    ++gShip.D
[B611] <1000>                  LOOP
[B614] <0304>                  lvFEF2 := 423    // was a 'mov'
[B624] <1000>                  lvFEEE := GetString_10AE_CBBA (lvFEF2)
[B633] <1000>                  lvFF00 := lvFEEE
[B63E] <0304>                  lvFEEC := 268    // was a 'mov'
[B64E] <1000>                  lvFEE8 := GetString_10AE_CBBA (lvFEEC)
[B690] <1000>                  lvFF00 := (((lvFF00 ++ lvFEE8) ++ Packed(DS:gShip.Name, 20)) ++ Packed(DS:gCR, 1))
[B69B] <0304>                  lvFEE6 := 424    // was a 'mov'
[B6AB] <1000>                  lvFEE2 := GetString_10AE_CBBA (lvFEE6)
[B6BA] <1000>                  lvFF00 := lvFF00 ++ lvFEE2
[B6CA] <0304>                  lvFEE0 := 6    // was a 'mov'
[B6D0] <1000>                  lvFEDC := "s0"
[B6EF] <1000>                  SendMessage_0000_AD12 (lvFF00, gShip.Id, lvFEDC, lvFEE0)
[B6F4] <1000>                ENDIF
[B6F4] <1000>              ENDIF
[B6F7] <0304>              gShipId := gVcr.Right.Id    // was a 'mov'
[B6FA] <1000>              ShipSave_0000_D099 ()
[B6FF] <1000>              GOSUB 0xB70C	;  FIXME: better formatting
[B707] <1000>            ENDIF
[B707] <1000>            RETURN
[B70C] <1000>            IF ((lRightShipCaptured = 0 && lLeftShipCaptured = 0) && lRightShipDied = 0) THEN
[B72A] <1000>              IF lLeftShipDied = 0 THEN
[B734] <0304>                lvFEDA := 425    // was a 'mov'
[B744] <1000>                lvFED6 := GetString_10AE_CBBA (lvFEDA)
[B753] <1000>                lvFF00 := lvFED6
[B7A9] <1000>                lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[B7B4] <0304>                lvFED4 := 426    // was a 'mov'
[B7C4] <1000>                lvFED0 := GetString_10AE_CBBA (lvFED4)
[B7D3] <1000>                lvFF00 := lvFF00 ++ lvFED0
[B828] <1000>                lvFF00 := ((((lvFF00 ++ Packed(DS:gVcr.Right.Name, 20)) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[B833] <0304>                lvFECE := 3    // was a 'mov'
[B846] <1000>                lvFECA := GetRaceName_0000_B063 (lvFECE, gVcr.Right.Player)
[B851] <0304>                lvFEC8 := 427    // was a 'mov'
[B861] <1000>                lvFEC4 := GetString_10AE_CBBA (lvFEC8)
[B88F] <1000>                lvFF00 := (((lvFF00 ++ "a ") ++ lvFECA) ++ lvFEC4)
[B8A7] <0304>                lvFEC2 := (2 * lLeftShip)    // was a 'mov'
[B90D] <1000>                lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFEC2))) ++ ")") ++ Packed(DS:gCR, 1))
[B918] <1000>                lvFEBE := "f0"
[B937] <1000>                SendMessage_0000_AD12 (lvFF00, lRightShip, lvFEBE, gVcr.Left.Player)
[B93C] <0304>                lvFEBC := 428    // was a 'mov'
[B94C] <1000>                lvFEB8 := GetString_10AE_CBBA (lvFEBC)
[B95B] <1000>                lvFF00 := lvFEB8
[B9B1] <1000>                lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[B9BC] <0304>                lvFEB6 := 429    // was a 'mov'
[B9CC] <1000>                lvFEB2 := GetString_10AE_CBBA (lvFEB6)
[B9DB] <1000>                lvFF00 := lvFF00 ++ lvFEB2
[BA30] <1000>                lvFF00 := ((((lvFF00 ++ Packed(DS:gVcr.Left.Name, 20)) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[BA3B] <0304>                lvFEB0 := 3    // was a 'mov'
[BA4E] <1000>                lvFEAC := GetRaceName_0000_B063 (lvFEB0, gVcr.Left.Player)
[BA59] <0304>                lvFEAA := 436    // was a 'mov'
[BA69] <1000>                lvFEA6 := GetString_10AE_CBBA (lvFEAA)
[BA97] <1000>                lvFF00 := (((lvFF00 ++ "a ") ++ lvFEAC) ++ lvFEA6)
[BAAF] <0304>                lvFEA4 := (2 * lLeftShip)    // was a 'mov'
[BB15] <1000>                lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFEA4))) ++ ")") ++ Packed(DS:gCR, 1))
[BB20] <1000>                lvFEA0 := "f0"
[BB3F] <1000>                SendMessage_0000_AD12 (lvFF00, lLeftShip, lvFEA0, gVcr.Right.Player)
[BB44] <1000>              ENDIF
[BB44] <1000>            ENDIF
[BB44] <1000>            IF lLeftShipDied = 1 THEN
[BB4E] <0304>              lvFE9E := 430    // was a 'mov'
[BB5E] <1000>              lvFE9A := GetString_10AE_CBBA (lvFE9E)
[BB6D] <1000>              lvFF00 := lvFE9A
[BBC3] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[BBCE] <0304>              lvFE98 := 431    // was a 'mov'
[BBDE] <1000>              lvFE94 := GetString_10AE_CBBA (lvFE98)
[BBED] <1000>              lvFF00 := lvFF00 ++ lvFE94
[BC42] <1000>              lvFF00 := ((((lvFF00 ++ Packed(DS:gVcr.Right.Name, 20)) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[BC4D] <0304>              lvFE92 := 3    // was a 'mov'
[BC60] <1000>              lvFE8E := GetRaceName_0000_B063 (lvFE92, gVcr.Right.Player)
[BC97] <1000>              lvFF00 := (((lvFF00 ++ "a ") ++ lvFE8E) ++ Packed(DS:gCR, 1))
[BCA2] <0304>              lvFE8C := 432    // was a 'mov'
[BCB2] <1000>              lvFE88 := GetString_10AE_CBBA (lvFE8C)
[BCC1] <1000>              lvFF00 := lvFF00 ++ lvFE88
[BCDE] <0304>              lvFE86 := (2 * lLeftShip)    // was a 'mov'
[BD44] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFE86))) ++ ")") ++ Packed(DS:gCR, 1))
[BD4F] <1000>              lvFE82 := "f0"
[BD6E] <1000>              SendMessage_0000_AD12 (lvFF00, lRightShip, lvFE82, gVcr.Left.Player)
[BD73] <0304>              lvFE80 := 433    // was a 'mov'
[BD83] <1000>              lvFE7C := GetString_10AE_CBBA (lvFE80)
[BD92] <1000>              lvFF00 := lvFE7C
[BD9D] <0304>              lvFE7A := 434    // was a 'mov'
[BDAD] <1000>              lvFE76 := GetString_10AE_CBBA (lvFE7A)
[BE0E] <1000>              lvFF00 := (((((lvFF00 ++ lvFE76) ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[BE19] <0304>              lvFE74 := 435    // was a 'mov'
[BE29] <1000>              lvFE70 := GetString_10AE_CBBA (lvFE74)
[BE38] <1000>              lvFF00 := lvFF00 ++ lvFE70
[BE48] <0304>              lvFE6E := 3    // was a 'mov'
[BE5B] <1000>              lvFE6A := GetRaceName_0000_B063 (lvFE6E, gVcr.Left.Player)
[BE66] <0304>              lvFE68 := 436    // was a 'mov'
[BE76] <1000>              lvFE64 := GetString_10AE_CBBA (lvFE68)
[BE9B] <1000>              lvFF00 := ((lvFF00 ++ lvFE6A) ++ lvFE64)
[BEF1] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[BF09] <0304>              lvFE5C := (2 * lLeftShip)    // was a 'mov'
[BF6F] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFE5C))) ++ ")") ++ Packed(DS:gCR, 1))
[BF7A] <0304>              lvFE62 := 437    // was a 'mov'
[BF8A] <1000>              lvFE5E := GetString_10AE_CBBA (lvFE62)
[BFD1] <1000>              lvFF00 := ((((lvFF00 ++ lvFE5E) ++ Str(lLeftPBPValue)) ++ " K.P.") ++ Packed(DS:gCR, 1))
[BFDC] <1000>              lvFE58 := "f0"
[BFFB] <1000>              SendMessage_0000_AD12 (lvFF00, lRightShip, lvFE58, gVcr.Right.Player)
[C000] <1000>              IF gVcr.Right.Player > 0 THEN
[C00A] <1000>                IF gVcr.Right.Player < 12 THEN
[C034] <0304>                  gPBPs((2 * gVcr.Right.Player)) := (gPBPs((2 * gVcr.Right.Player)) + lLeftPBPValue)    // was a 'mov'
[C056] <0304>                  lvFE56 := (4 * ((2 * lvFFC4) + gVcr.Right.Player))    // was a 'mov'
[C06D] <0304>                  lTons(lvFE56)L := (lLeftTonsValue + lTons((4 * ((2 * lvFFC4) + gVcr.Right.Player)))L)    // was a 'mov'
[C093] <0304>                  lvFE54 := (4 * ((2 * lvFFAE) + gVcr.Right.Player))    // was a 'mov'
[C0AA] <0304>                  lTons2(lvFE54)L := (lLeftTons2Value + lTons2((4 * ((2 * lvFFAE) + gVcr.Right.Player)))L)    // was a 'mov'
[C0B1] <1000>                ENDIF
[C0B1] <1000>              ENDIF
[C0D0] <0304>              gShipExperience((2 * lRightShip)) := (gShipExperience((2 * lRightShip)) + 20)    // was a 'mov'
[C0DB] <1000>              IF gShipExperience((2 * lRightShip)) > 25000 THEN
[C0EA] <0304>                gShipExperience((2 * lRightShip)) := 25000    // was a 'mov'
[C0EF] <1000>              ENDIF
[C0EF] <0304>              lvFE52 := 438    // was a 'mov'
[C0FF] <1000>              lvFE4E := GetString_10AE_CBBA (lvFE52)
[C10E] <1000>              lvFF00 := lvFE4E
[C119] <0304>              lvFE4C := 439    // was a 'mov'
[C129] <1000>              lvFE48 := GetString_10AE_CBBA (lvFE4C)
[C138] <1000>              lvFF00 := lvFF00 ++ lvFE48
[C155] <0304>              lvFE40 := (2 * lRightShip)    // was a 'mov'
[C1BB] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lRightShip)))) ++ " ,") ++ Str(gShipY(lvFE40))) ++ " )") ++ Packed(DS:gCR, 1))
[C1C6] <0304>              lvFE46 := 440    // was a 'mov'
[C1D6] <1000>              lvFE42 := GetString_10AE_CBBA (lvFE46)
[C1E5] <1000>              lvFF00 := lvFF00 ++ lvFE42
[C221] <1000>              lvFF00 := ((lvFF00 ++ Packed(DS:gVcr.Left.Name, 20)) ++ Packed(DS:gCR, 1))
[C22C] <1000>              ++gBangCount
[C230] <1000>              IF gBangCount <= 50 THEN
[C25F] <0304>                gBangX((2 * gBangCount)) := gShipX((2 * lRightShip))    // was a 'mov'
[C27B] <0304>                gBangY((2 * gBangCount)) := gShipY((2 * lRightShip))    // was a 'mov'
[C27E] <1000>                FOR lvFE3A := 1 TO 11 DO
[C284] <1000>                  IF (lvFE3A <> gVcr.Left.Player && lvFE3A <> gVcr.Right.Player) THEN
[C2A3] <1000>                    IF gPlayerIsActive((2 * lvFE3A)) = 1 THEN
[C2AC] <1000>                      lvFE3C := "x0"
[C2CB] <1000>                      SendMessage_0000_AD12 (lvFF00, gBangCount, lvFE3C, lvFE3A)
[C2D0] <1000>                    ENDIF
[C2D0] <1000>                  ENDIF
[C2D5] <1000>                NEXT lvFE3A
[C2DE] <1000>              ENDIF
[C2DE] <1000>            ENDIF
[C2DE] <1000>            IF lRightShipDied = 1 THEN
[C2E8] <0304>              lvFE38 := 441    // was a 'mov'
[C2F8] <1000>              lvFE34 := GetString_10AE_CBBA (lvFE38)
[C307] <1000>              lvFF00 := lvFE34
[C35D] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[C368] <0304>              lvFE32 := 442    // was a 'mov'
[C378] <1000>              lvFE2E := GetString_10AE_CBBA (lvFE32)
[C387] <1000>              lvFF00 := lvFF00 ++ lvFE2E
[C3DC] <1000>              lvFF00 := ((((lvFF00 ++ Packed(DS:gVcr.Left.Name, 20)) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[C3E7] <0304>              lvFE2C := 3    // was a 'mov'
[C3FA] <1000>              lvFE28 := GetRaceName_0000_B063 (lvFE2C, gVcr.Left.Player)
[C431] <1000>              lvFF00 := (((lvFF00 ++ "a ") ++ lvFE28) ++ Packed(DS:gCR, 1))
[C43C] <0304>              lvFE26 := 443    // was a 'mov'
[C44C] <1000>              lvFE22 := GetString_10AE_CBBA (lvFE26)
[C45B] <1000>              lvFF00 := lvFF00 ++ lvFE22
[C478] <0304>              lvFE20 := (2 * lLeftShip)    // was a 'mov'
[C4DE] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFE20))) ++ ")") ++ Packed(DS:gCR, 1))
[C4E9] <1000>              lvFE1C := "f0"
[C508] <1000>              SendMessage_0000_AD12 (lvFF00, lLeftShip, lvFE1C, gVcr.Right.Player)
[C50D] <0304>              lvFE1A := 444    // was a 'mov'
[C51D] <1000>              lvFE16 := GetString_10AE_CBBA (lvFE1A)
[C52C] <1000>              lvFF00 := lvFE16
[C537] <0304>              lvFE14 := 445    // was a 'mov'
[C547] <1000>              lvFE10 := GetString_10AE_CBBA (lvFE14)
[C5A8] <1000>              lvFF00 := (((((lvFF00 ++ lvFE10) ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[C5B3] <0304>              lvFE0E := 446    // was a 'mov'
[C5C3] <1000>              lvFE0A := GetString_10AE_CBBA (lvFE0E)
[C5D2] <1000>              lvFF00 := lvFF00 ++ lvFE0A
[C5E2] <0304>              lvFE08 := 3    // was a 'mov'
[C5F5] <1000>              lvFE04 := GetRaceName_0000_B063 (lvFE08, gVcr.Right.Player)
[C600] <0304>              lvFE02 := 436    // was a 'mov'
[C610] <1000>              lvFDFE := GetString_10AE_CBBA (lvFE02)
[C635] <1000>              lvFF00 := ((lvFF00 ++ lvFE04) ++ lvFDFE)
[C68B] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[C6A3] <0304>              lvFDF6 := (2 * lLeftShip)    // was a 'mov'
[C709] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFDF6))) ++ ")") ++ Packed(DS:gCR, 1))
[C714] <0304>              lvFDFC := 447    // was a 'mov'
[C724] <1000>              lvFDF8 := GetString_10AE_CBBA (lvFDFC)
[C76B] <1000>              lvFF00 := ((((lvFF00 ++ lvFDF8) ++ Str(lRightPBPValue)) ++ " K.P.") ++ Packed(DS:gCR, 1))
[C776] <1000>              lvFDF2 := "f0"
[C795] <1000>              SendMessage_0000_AD12 (lvFF00, lLeftShip, lvFDF2, gVcr.Left.Player)
[C79A] <1000>              IF gVcr.Left.Player > 0 THEN
[C7A4] <1000>                IF gVcr.Right.Player < 12 THEN
[C7CE] <0304>                  gPBPs((2 * gVcr.Left.Player)) := (gPBPs((2 * gVcr.Left.Player)) + lRightPBPValue)    // was a 'mov'
[C7F0] <0304>                  lvFDF0 := (4 * ((2 * lvFFC4) + gVcr.Left.Player))    // was a 'mov'
[C807] <0304>                  lTons(lvFDF0)L := (lRightTonsValue + lTons((4 * ((2 * lvFFC4) + gVcr.Left.Player)))L)    // was a 'mov'
[C82D] <0304>                  lvFDEE := (4 * ((2 * lvFFAE) + gVcr.Left.Player))    // was a 'mov'
[C844] <0304>                  lTons2(lvFDEE)L := (lRightTons2Value + lTons2((4 * ((2 * lvFFAE) + gVcr.Left.Player)))L)    // was a 'mov'
[C84B] <1000>                ENDIF
[C84B] <1000>              ENDIF
[C86A] <0304>              gShipExperience((2 * lLeftShip)) := (gShipExperience((2 * lLeftShip)) + 20)    // was a 'mov'
[C875] <1000>              IF gShipExperience((2 * lLeftShip)) > 25000 THEN
[C884] <0304>                gShipExperience((2 * lLeftShip)) := 25000    // was a 'mov'
[C889] <1000>              ENDIF
[C889] <0304>              lvFDEC := 448    // was a 'mov'
[C899] <1000>              lvFDE8 := GetString_10AE_CBBA (lvFDEC)
[C8A8] <1000>              lvFF00 := lvFDE8
[C8B3] <0304>              lvFDE6 := 449    // was a 'mov'
[C8C3] <1000>              lvFDE2 := GetString_10AE_CBBA (lvFDE6)
[C8D2] <1000>              lvFF00 := lvFF00 ++ lvFDE2
[C8EF] <0304>              lvFDDA := (2 * lLeftShip)    // was a 'mov'
[C955] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFDDA))) ++ ")") ++ Packed(DS:gCR, 1))
[C960] <0304>              lvFDE0 := 450    // was a 'mov'
[C970] <1000>              lvFDDC := GetString_10AE_CBBA (lvFDE0)
[C97F] <1000>              lvFF00 := lvFF00 ++ lvFDDC
[C9BB] <1000>              lvFF00 := ((lvFF00 ++ Packed(DS:gVcr.Right.Name, 20)) ++ Packed(DS:gCR, 1))
[C9C6] <1000>              ++gBangCount
[C9CA] <1000>              IF gBangCount <= 50 THEN
[C9F9] <0304>                gBangX((2 * gBangCount)) := gShipX((2 * lRightShip))    // was a 'mov'
[CA15] <0304>                gBangY((2 * gBangCount)) := gShipY((2 * lRightShip))    // was a 'mov'
[CA18] <1000>                FOR lvFE3A := 1 TO 11 DO
[CA1E] <1000>                  IF (lvFE3A <> gVcr.Left.Player && lvFE3A <> gVcr.Right.Player) THEN
[CA3D] <1000>                    IF gPlayerIsActive((2 * lvFE3A)) = 1 THEN
[CA46] <1000>                      lvFDD6 := "x0"
[CA65] <1000>                      SendMessage_0000_AD12 (lvFF00, gBangCount, lvFDD6, lvFE3A)
[CA6A] <1000>                    ENDIF
[CA6A] <1000>                  ENDIF
[CA6F] <1000>                NEXT lvFE3A
[CA78] <1000>              ENDIF
[CA78] <1000>            ENDIF
[CA78] <1000>            IF lLeftShipCaptured = 1 THEN
[CA82] <0304>              lvFDD4 := 451    // was a 'mov'
[CA92] <1000>              lvFDD0 := GetString_10AE_CBBA (lvFDD4)
[CAA1] <1000>              lvFF00 := lvFDD0
[CAAC] <0304>              lvFDCE := 452    // was a 'mov'
[CABC] <1000>              lvFDCA := GetString_10AE_CBBA (lvFDCE)
[CB1D] <1000>              lvFF00 := (((((lvFF00 ++ lvFDCA) ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[CB28] <0304>              lvFDC8 := 453    // was a 'mov'
[CB38] <1000>              lvFDC4 := GetString_10AE_CBBA (lvFDC8)
[CB47] <1000>              lvFF00 := lvFF00 ++ lvFDC4
[CB57] <0304>              lvFDC2 := 3    // was a 'mov'
[CB6A] <1000>              lvFDBE := GetRaceName_0000_B063 (lvFDC2, gVcr.Left.Player)
[CB75] <0304>              lvFDBC := 436    // was a 'mov'
[CB85] <1000>              lvFDB8 := GetString_10AE_CBBA (lvFDBC)
[CBAA] <1000>              lvFF00 := ((lvFF00 ++ lvFDBE) ++ lvFDB8)
[CC00] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[CC18] <0304>              lvFDB6 := (2 * lLeftShip)    // was a 'mov'
[CC7E] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFDB6))) ++ ")") ++ Packed(DS:gCR, 1))
[CC89] <1000>              lvFDB2 := "f0"
[CCA8] <1000>              SendMessage_0000_AD12 (lvFF00, lRightShip, lvFDB2, gVcr.Right.Player)
[CCCC] <0304>              gShipExperience((2 * lRightShip)) := (gShipExperience((2 * lRightShip)) + 40)    // was a 'mov'
[CCD7] <1000>              IF gShipExperience((2 * lRightShip)) > 25000 THEN
[CCE6] <0304>                gShipExperience((2 * lRightShip)) := 25000    // was a 'mov'
[CCEB] <1000>              ENDIF
[CCEB] <0304>              lvFDB0 := 454    // was a 'mov'
[CCFB] <1000>              lvFDAC := GetString_10AE_CBBA (lvFDB0)
[CD0A] <1000>              lvFF00 := lvFDAC
[CD60] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[CD6B] <0304>              lvFDAA := 455    // was a 'mov'
[CD7B] <1000>              lvFDA6 := GetString_10AE_CBBA (lvFDAA)
[CD8A] <1000>              lvFF00 := lvFF00 ++ lvFDA6
[CD9A] <0304>              lvFDA4 := 3    // was a 'mov'
[CDAD] <1000>              lvFDA0 := GetRaceName_0000_B063 (lvFDA4, gVcr.Right.Player)
[CDB8] <0304>              lvFD9E := 456    // was a 'mov'
[CDC8] <1000>              lvFD9A := GetString_10AE_CBBA (lvFD9E)
[CDED] <1000>              lvFF00 := ((lvFF00 ++ lvFDA0) ++ lvFD9A)
[CE43] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[CE5B] <0304>              lvFD98 := (2 * lLeftShip)    // was a 'mov'
[CEC1] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFD98))) ++ ")") ++ Packed(DS:gCR, 1))
[CECC] <1000>              lvFD94 := "f0"
[CEEB] <1000>              SendMessage_0000_AD12 (lvFF00, lRightShip, lvFD94, gVcr.Left.Player)
[CEF0] <1000>            ENDIF
[CEF0] <1000>            IF lRightShipCaptured = 1 THEN
[CEFA] <0304>              lvFD92 := 457    // was a 'mov'
[CF0A] <1000>              lvFD8E := GetString_10AE_CBBA (lvFD92)
[CF19] <1000>              lvFF00 := lvFD8E
[CF24] <0304>              lvFD8C := 458    // was a 'mov'
[CF34] <1000>              lvFD88 := GetString_10AE_CBBA (lvFD8C)
[CF95] <1000>              lvFF00 := (((((lvFF00 ++ lvFD88) ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[CFA0] <0304>              lvFD86 := 459    // was a 'mov'
[CFB0] <1000>              lvFD82 := GetString_10AE_CBBA (lvFD86)
[CFBF] <1000>              lvFF00 := lvFF00 ++ lvFD82
[CFCF] <0304>              lvFD80 := 3    // was a 'mov'
[CFE2] <1000>              lvFD7C := GetRaceName_0000_B063 (lvFD80, gVcr.Right.Player)
[CFED] <0304>              lvFD7A := 436    // was a 'mov'
[CFFD] <1000>              lvFD76 := GetString_10AE_CBBA (lvFD7A)
[D022] <1000>              lvFF00 := ((lvFF00 ++ lvFD7C) ++ lvFD76)
[D078] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[D090] <0304>              lvFD74 := (2 * lLeftShip)    // was a 'mov'
[D0F6] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFD74))) ++ ")") ++ Packed(DS:gCR, 1))
[D101] <1000>              lvFD70 := "f0"
[D120] <1000>              SendMessage_0000_AD12 (lvFF00, lLeftShip, lvFD70, gVcr.Left.Player)
[D144] <0304>              gShipExperience((2 * lLeftShip)) := (gShipExperience((2 * lLeftShip)) + 40)    // was a 'mov'
[D14F] <1000>              IF gShipExperience((2 * lLeftShip)) > 25000 THEN
[D15E] <0304>                gShipExperience((2 * lLeftShip)) := 25000    // was a 'mov'
[D163] <1000>              ENDIF
[D163] <0304>              lvFD6E := 460    // was a 'mov'
[D173] <1000>              lvFD6A := GetString_10AE_CBBA (lvFD6E)
[D182] <1000>              lvFF00 := lvFD6A
[D1D8] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Right.Name, 20))) ++ " ID #") ++ Str(lRightShip)) ++ Packed(DS:gCR, 1))
[D1E3] <0304>              lvFD68 := 461    // was a 'mov'
[D1F3] <1000>              lvFD64 := GetString_10AE_CBBA (lvFD68)
[D202] <1000>              lvFF00 := lvFF00 ++ lvFD64
[D212] <0304>              lvFD62 := 3    // was a 'mov'
[D225] <1000>              lvFD5E := GetRaceName_0000_B063 (lvFD62, gVcr.Left.Player)
[D230] <0304>              lvFD5C := 436    // was a 'mov'
[D240] <1000>              lvFD58 := GetString_10AE_CBBA (lvFD5C)
[D265] <1000>              lvFF00 := ((lvFF00 ++ lvFD5E) ++ lvFD58)
[D2BB] <1000>              lvFF00 := ((((lvFF00 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ " ID #") ++ Str(lLeftShip)) ++ Packed(DS:gCR, 1))
[D2D3] <0304>              lvFD56 := (2 * lLeftShip)    // was a 'mov'
[D339] <1000>              lvFF00 := ((((((lvFF00 ++ "(") ++ Str(gShipX((2 * lLeftShip)))) ++ " ,") ++ Str(gShipY(lvFD56))) ++ ")") ++ Packed(DS:gCR, 1))
[D344] <1000>              lvFD52 := "f0"
[D363] <1000>              SendMessage_0000_AD12 (lvFF00, lLeftShip, lvFD52, gVcr.Right.Player)
[D368] <1000>            ENDIF
[D368] <1000>            RETURN
[D36D] <1001>   LABEL    0001h
[D370] <1000>            UnDim lShipsInFCodeOrder
[D379] <1000>            UnDim lTons2
[D382] <1000>            UnDim lTons
[D388] <1000>            ' leave_frame
[D38D] <0504>   retf     0000h
       END SUB
