diff --git a/STATUS.md b/STATUS.md index 53a24135..4597818f 100644 --- a/STATUS.md +++ b/STATUS.md @@ -183,6 +183,7 @@ Floating point mathematical routines - not official, but well known and broadly | `$AF87` | not named yet | NOT DONE | | | `$AF9A` | `compute_ST` | NOT DONE | | | `$B1AA` | `FACINX` | NOT DONE | convert FAC1 to 16-bit signed integer | +| `$B1BF` | `convert_FAC1_to_s16` | NOT DONE | | | `$B391` | `GIVAYF` | NOT DONE | 16-bit signed integer to FAC1 | | `$B3A2` | `convert_Y_to_FAC1` | NOT DONE | | | `$B794` | `convert_A_to_FAC1` | NOT DONE | | @@ -202,11 +203,13 @@ Floating point mathematical routines - not official, but well known and broadly | `$BA2B` | `mul_FAC2_FAC1` | NOT DONE | some work started | | `$BA59` | `MLTPLY` | NOT DONE | | | `$BA8C` | `mov_MEM_FAC2` | DONE | | +| `$BA90` | `get_FAC2_via_INDEX` | NOT DONE | | | `$BAE2` | `mul10_FAC1` | NOT DONE | | | `$BAFE` | `div10_FAC1_p` | NOT DONE | | | `$BB0F` | `div_MEM_FAC1` | PARTIAL | needs `div_FAC2_FAC1` | | `$BB12` | `div_FAC2_FAC1` | NOT DONE | | | `$BBA2` | `mov_MEM_FAC1` | DONE | | +| `$BBA6` | `get_FAC2_via_INDEX` | NOT DONE | | | `$BBC7` | `mov_r_FAC1_TMP2` | PARTIAL | not fully tested yet | | `$BBCA` | `mov_r_FAC1_TMP1` | PARTIAL | not fully tested yet | | `$BBD0` | `mov_r_FAC1_VAR` | PARTIAL | not fully tested yet | diff --git a/c64/basic/,stubs_math/b1bf.convert_FAC1_to_s16.s b/c64/basic/,stubs_math/b1bf.convert_FAC1_to_s16.s new file mode 100644 index 00000000..601bf5d7 --- /dev/null +++ b/c64/basic/,stubs_math/b1bf.convert_FAC1_to_s16.s @@ -0,0 +1,17 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +// +// Math package - XXX +// +// See also: +// - https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True +// + +// XXX implement, test + +convert_FAC1_to_s16: + + STUB_IMPLEMENTATION() diff --git a/c64/basic/,stubs_math/b1bf.interop b/c64/basic/,stubs_math/b1bf.interop new file mode 100644 index 00000000..3de00adc --- /dev/null +++ b/c64/basic/,stubs_math/b1bf.interop @@ -0,0 +1,4 @@ +This is an important floating point math routine, documented in many places. + +It's a part oof the ACME assembler SDK, see: +- https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True diff --git a/c64/basic/,stubs_math/ba90.get_FAC2_via_INDEX.s b/c64/basic/,stubs_math/ba90.get_FAC2_via_INDEX.s new file mode 100644 index 00000000..1e5b639a --- /dev/null +++ b/c64/basic/,stubs_math/ba90.get_FAC2_via_INDEX.s @@ -0,0 +1,17 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +// +// Math package - XXX +// +// See also: +// - https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True +// + +// XXX implement, test + +get_FAC2_via_INDEX: + + STUB_IMPLEMENTATION() diff --git a/c64/basic/,stubs_math/ba90.interop b/c64/basic/,stubs_math/ba90.interop new file mode 100644 index 00000000..3de00adc --- /dev/null +++ b/c64/basic/,stubs_math/ba90.interop @@ -0,0 +1,4 @@ +This is an important floating point math routine, documented in many places. + +It's a part oof the ACME assembler SDK, see: +- https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True diff --git a/c64/basic/,stubs_math/bba6.get_FAC1_via_INDEX.s b/c64/basic/,stubs_math/bba6.get_FAC1_via_INDEX.s new file mode 100644 index 00000000..fc6675f6 --- /dev/null +++ b/c64/basic/,stubs_math/bba6.get_FAC1_via_INDEX.s @@ -0,0 +1,17 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +// +// Math package - XXX +// +// See also: +// - https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True +// + +// XXX implement, test + +get_FAC1_via_INDEX: + + STUB_IMPLEMENTATION() diff --git a/c64/basic/,stubs_math/bba6.interop b/c64/basic/,stubs_math/bba6.interop new file mode 100644 index 00000000..3de00adc --- /dev/null +++ b/c64/basic/,stubs_math/bba6.interop @@ -0,0 +1,4 @@ +This is an important floating point math routine, documented in many places. + +It's a part oof the ACME assembler SDK, see: +- https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True