diff --git a/STATUS.md b/STATUS.md index c3e2f405..cb62be7f 100644 --- a/STATUS.md +++ b/STATUS.md @@ -235,7 +235,7 @@ Floating point mathematical routines - not official, but well known and broadly | `$BC0F` | `mov_FAC1_FAC2` | DONE | From the Microsoft BASIC, original name: MOVEF | | `$BC1B` | `round_FAC1` | PARTIAL | not fully tested yet | | `$BC2B` | `sgn_FAC1_A` | DONE | From the Microsoft BASIC, original name: SIGN | -| `$BC39` | `sgn_FAC1` | DONE | | +| `$BC39` | `sgn_FAC1` | DONE | From the Microsoft BASIC, original name: SGN | | `$BC3C` | `convert_A_to_FAC1` | DONE | | | `$BC44` | `convert_i16_to_FAC1` | DONE | | | `$BC58` | `abs_FAC1` | DONE | From the Microsoft BASIC, original name: ABS | diff --git a/src/basic/math/bc39.sgn_FAC1.s b/src/basic/math/bc39.sgn_FAC1.s index 20be7ef3..f3dcad7c 100644 --- a/src/basic/math/bc39.sgn_FAC1.s +++ b/src/basic/math/bc39.sgn_FAC1.s @@ -3,12 +3,16 @@ ;; #LAYOUT# * BASIC_0 #TAKE ;; #LAYOUT# * * #IGNORE -; +; This file is under the MIT license, it contains code released by Microsoft Corporation. +; See LICENSE for more information. + ; Math package - evaluate FAC1 sign, to FAC1 ; ; Output: ; - FAC1 - 0 for FAC1 equal 0, 1 for FAC1 > 0, -1 for FAC1 < 0 ; +; This is verified to be identical to the original Microsoft implementation where it was named SGN. +; ; See also: ; - [CM64] Computes Mapping the Commodore 64 - page 115 ; - https://www.c64-wiki.com/wiki/Floating_point_arithmetic @@ -17,4 +21,5 @@ sgn_FAC1: jsr sgn_FAC1_A + ; Fallthrough to convert_A_to_FAC1 diff --git a/tools/similarity.c b/tools/similarity.c index 4a5d20db..a27c7375 100644 --- a/tools/similarity.c +++ b/tools/similarity.c @@ -28,7 +28,7 @@ unsigned short microsoft_basic_chunks[NUM_CHUNKS * 2] = { 0xB947, 0xB97D, 0xB983, 0xB9BB, 0xBBA2, 0xBC1A, - 0xBC2B, 0xBC38, + 0xBC2B, 0xBC3B, 0xBC58, 0xBC5A, 0xBC9B, 0xBCF2, };