diff --git a/STATUS.md b/STATUS.md
index f9c5439f..33459a52 100644
--- a/STATUS.md
+++ b/STATUS.md
@@ -174,54 +174,70 @@ Floating point mathematical routines - not official, but well known and broadly
-| Address | Name | Status | Remarks |
-| :-------: | :-------------------- | :------: | :------------------------------------------------: |
-| `$B1AA` | `FACINX` | NOT DONE | convert FAC1 to 16-bit signed integer |
-| `$B391` | `GIVAYF` | NOT DONE | 16-bit signed integer to FAC1 |
-| `$B7B5` | `STRVAL` | NOT DONE | imports string to FAC1 |
-| `$B850` | `sub_MEM_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
-| `$B853` | `sub_FAC2_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
-| `$B862` | `add_align_exponents` | PARTIAL | not tested yet |
-| `$B867` | `add_MEM_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
-| `$B86A` | `add_FAC2_FAC1` | NOT DONE | |
-| `$B8FE` | `normal_FAC1` | PARTIAL | not tested yet |
-| `$B9EA` | `log_FAC1` | NOT DONE | |
-| `$BA28` | `mul_MEM_FAC1` | PARTIAL | needs `mul_FAC2_FAC1` |
-| `$BA2B` | `mul_FAC2_FAC1` | NOT DONE | |
-| `$BA8C` | `mov_MEM_FAC2` | PARTIAL | not fully tested yet |
-| `$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` | PARTIAL | not fully tested yet |
-| `$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 |
-| `$BBD4` | `mov_r_FAC1_MEM` | PARTIAL | not fully tested yet |
-| `$BBFC` | `mov_FAC2_FAC1` | PARTIAL | not fully tested yet |
-| `$BC0C` | `mov_r_FAC1_FAC2` | PARTIAL | not fully tested yet |
-| `$BC0F` | `mov_FAC1_FAC2` | DONE | |
-| `$BC1B` | `round_FAC1` | PARTIAL | not fully tested yet |
-| `$BC2B` | `sgn_FAC1_A` | NOT DONE | |
-| `$BC39` | `sgn_FAC1` | NOT DONE | |
-| `$BC58` | `abs_FAC1` | NOT DONE | |
-| `$BC5B` | `FCOMP` | NOT DONE | compare FAC1 with RAM location |
-| `$BC9B` | `QINT` | NOT DONE | convert FAC1 to 32 bit signed integer |
-| `$BCCC` | `int_FAC1` | NOT DONE | |
-| `$BCF3` | `FIN` | NOT DONE | imports string to FAC1, ignores spaces |
-| `$BDDD` | `FOUT` | NOT DONE | outputs FAC1 to string at $0100 |
-| `$BF71` | `sqr_FAC1` | NOT DONE | |
-| `$BF74` | `sqr_FAC2` | NOT DONE | |
-| `$BF78` | `FPWR` | NOT DONE | set FAC1 as RAM raised to the power of FAC1 |
-| `$BF7B` | `FPWRT` | NOT DONE | set FAC1 as FAC2 raised to the power of FAC1 |
-| `$BFB4` | `toggle_sign_FAC1` | DONE | |
-| `$BFED` | `exp_FAC1` | NOT DONE | |
-| `$E043` | `poly1_FAC1` | NOT DONE | |
-| `$E059` | `poly2_FAC1` | NOT DONE | |
-| `$E264` | `cos_FAC1` | NOT DONE | |
-| `$E26B` | `sin_FAC1` | NOT DONE | |
-| `$E2B4` | `tan_FAC1` | NOT DONE | |
-| `$E30E` | `atn_FAC1` | NOT DONE | |
+| Address | Name | Status | Remarks |
+| :-------: | :--------------------- | :------: | :------------------------------------------------: |
+| `$A9C4` | `convert_FAC1_to_INT` | NOT DONE | |
+| `$AABC` | `print_FAC1` | NOT DONE | |
+| `$AF7B` | `compute_TI` | NOT DONE | |
+| `$AF7E` | not named yet | NOT DONE | |
+| `$AF87` | not named yet | NOT DONE | |
+| `$AF9A` | `compute_ST` | NOT DONE | |
+| `$B1AA` | `FACINX` | NOT DONE | convert FAC1 to 16-bit signed integer |
+| `$B391` | `GIVAYF` | NOT DONE | 16-bit signed integer to FAC1 |
+| `$B3A2` | `convert_Y_to_FAC1` | NOT DONE | |
+| `$B794` | `convert_A_to_FAC1` | NOT DONE | |
+| `$B7B5` | `STRVAL` | NOT DONE | imports string to FAC1 |
+| `$B7F7` | `convert_FAC1_to_ADDR` | NOT DONE | |
+| `$B849` | `add_HALF_FAC1` | NOT DONE | |
+| `$B850` | `sub_MEM_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
+| `$B853` | `sub_FAC2_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
+| `$B862` | `add_align_exponents` | PARTIAL | not tested yet |
+| `$B867` | `add_MEM_FAC1` | PARTIAL | needs `add_FAC2_FAC1` |
+| `$B86A` | `add_FAC2_FAC1` | NOT DONE | |
+| `$B8FE` | `normal_FAC1` | PARTIAL | not tested yet |
+| `$B947` | `inv_FAC1_mantissa` | NOT DONE | |
+| `$B983` | `MULSHF` | NOT DONE | |
+| `$B9EA` | `log_FAC1` | NOT DONE | |
+| `$BA28` | `mul_MEM_FAC1` | PARTIAL | needs `mul_FAC2_FAC1` |
+| `$BA2B` | `mul_FAC2_FAC1` | NOT DONE | |
+| `$BA59` | `MLTPLY` | NOT DONE | |
+| `$BA8C` | `mov_MEM_FAC2` | PARTIAL | not fully tested yet |
+| `$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` | PARTIAL | not fully tested yet |
+| `$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 |
+| `$BBD4` | `mov_r_FAC1_MEM` | PARTIAL | not fully tested yet |
+| `$BBFC` | `mov_FAC2_FAC1` | PARTIAL | not fully tested yet |
+| `$BC0C` | `mov_r_FAC1_FAC2` | PARTIAL | not fully tested yet |
+| `$BC0F` | `mov_FAC1_FAC2` | DONE | |
+| `$BC1B` | `round_FAC1` | PARTIAL | not fully tested yet |
+| `$BC2B` | `sgn_FAC1_A` | NOT DONE | |
+| `$BC39` | `sgn_FAC1` | NOT DONE | |
+| `$BC3C` | `convert_A_to_FAC1` | NOT DONE | |
+| `$BC44` | `convert_i16_to_FAC1` | NOT DONE | |
+| `$BC58` | `abs_FAC1` | NOT DONE | |
+| `$BC5B` | `FCOMP` | NOT DONE | compare FAC1 with RAM location |
+| `$BC9B` | `QINT` | NOT DONE | convert FAC1 to 32 bit signed integer |
+| `$BCCC` | `int_FAC1` | NOT DONE | |
+| `$BCF3` | `FIN` | NOT DONE | imports string to FAC1, ignores spaces |
+| `$BD7E` | `FINLOG` | NOT DONE | |
+| `$BDDD` | `FOUT` | NOT DONE | outputs FAC1 to string at $0100 |
+| `$BF71` | `sqr_FAC1` | NOT DONE | |
+| `$BF74` | `sqr_FAC2` | NOT DONE | |
+| `$BF78` | `FPWR` | NOT DONE | set FAC1 as RAM raised to the power of FAC1 |
+| `$BF7B` | `FPWRT` | NOT DONE | set FAC1 as FAC2 raised to the power of FAC1 |
+| `$BFB4` | `toggle_sign_FAC1` | DONE | |
+| `$BFED` | `exp_FAC1` | NOT DONE | |
+| `$E043` | `poly1_FAC1` | NOT DONE | |
+| `$E059` | `poly2_FAC1` | NOT DONE | |
+| `$E264` | `cos_FAC1` | NOT DONE | |
+| `$E26B` | `sin_FAC1` | NOT DONE | |
+| `$E2B4` | `tan_FAC1` | NOT DONE | |
+| `$E30E` | `atn_FAC1` | NOT DONE | |
diff --git a/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s b/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s
new file mode 100644
index 00000000..70e6a741
--- /dev/null
+++ b/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s
@@ -0,0 +1,21 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - subtract FAC1 to integer in memory
+//
+// Output:
+// - integer pointed by $49/$4A
+//
+// See also:
+// - https://sta.c64.org/cbm64basconv.html
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+//
+
+// XXX implement, test
+
+
+convert_FAC1_to_INT:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/a9c4.interop b/c64/basic/,stubs_math/a9c4.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/a9c4.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/aabc.interop b/c64/basic/,stubs_math/aabc.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/aabc.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/aabc.print_FAC1.s b/c64/basic/,stubs_math/aabc.print_FAC1.s
new file mode 100644
index 00000000..8bcd6a54
--- /dev/null
+++ b/c64/basic/,stubs_math/aabc.print_FAC1.s
@@ -0,0 +1,17 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - print FAC1 value
+//
+// See also:
+// - https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True
+//
+
+// XXX implement, test
+
+
+print_FAC1:
+
+ STUB_IMPLEMENTATION()
\ No newline at end of file
diff --git a/c64/basic/,stubs_math/af7b.compute_TI.s b/c64/basic/,stubs_math/af7b.compute_TI.s
new file mode 100644
index 00000000..835cc59a
--- /dev/null
+++ b/c64/basic/,stubs_math/af7b.compute_TI.s
@@ -0,0 +1,16 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - compute TI value
+//
+// See also:
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+//
+
+// XXX implement, test
+
+compute_TI:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/af7b.interop b/c64/basic/,stubs_math/af7b.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/af7b.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/af7e.interop b/c64/basic/,stubs_math/af7e.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/af7e.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/af7e.math_stub.s b/c64/basic/,stubs_math/af7e.math_stub.s
new file mode 100644
index 00000000..40a32304
--- /dev/null
+++ b/c64/basic/,stubs_math/af7e.math_stub.s
@@ -0,0 +1,14 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - sets mantissa to 00yyxxaa
+//
+// See also:
+// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
+//
+
+// XXX add name, label, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/af87.interop b/c64/basic/,stubs_math/af87.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/af87.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/af87.math_stub.s b/c64/basic/,stubs_math/af87.math_stub.s
new file mode 100644
index 00000000..fc4fae09
--- /dev/null
+++ b/c64/basic/,stubs_math/af87.math_stub.s
@@ -0,0 +1,14 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - set rest of FAC1 and JMP to $b8d2
+//
+// See also:
+// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
+//
+
+// XXX add name, label, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/af9a.compute_ST.s b/c64/basic/,stubs_math/af9a.compute_ST.s
new file mode 100644
index 00000000..dca181aa
--- /dev/null
+++ b/c64/basic/,stubs_math/af9a.compute_ST.s
@@ -0,0 +1,16 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - compute ST value
+//
+// See also:
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+//
+
+// XXX implement, test
+
+compute_ST:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/af9a.interop b/c64/basic/,stubs_math/af9a.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/af9a.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s b/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s
new file mode 100644
index 00000000..49df4eb6
--- /dev/null
+++ b/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s
@@ -0,0 +1,15 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - XXX
+//
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+// - https://sta.c64.org/cbm64basconv.html
+// - https://sourceforge.net/p/acme-crossass/code-0/38/tree/trunk/ACME_Lib/cbm/c64/float.a?force=True
+// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
+//
+// XXX add name, label, documentation, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b3a2.interop b/c64/basic/,stubs_math/b3a2.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b3a2.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s b/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s
new file mode 100644
index 00000000..8a91c04d
--- /dev/null
+++ b/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s
@@ -0,0 +1,12 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - XXX
+//
+// - https://sta.c64.org/cbm64basconv.html
+//
+// XXX add name, label, documentation, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b794.interop b/c64/basic/,stubs_math/b794.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b794.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s b/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s
new file mode 100644
index 00000000..eaeee7fc
--- /dev/null
+++ b/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s
@@ -0,0 +1,19 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - subtract FAC1 to memory address at $14/$15 and Y/A
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 112
+// - https://sta.c64.org/cbm64basconv.html
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+//
+
+// XXX implement, test
+
+
+convert_FAC1_to_ADDR:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b7f7.interop b/c64/basic/,stubs_math/b7f7.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b7f7.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b849.add_HALF_FAC1.s b/c64/basic/,stubs_math/b849.add_HALF_FAC1.s
new file mode 100644
index 00000000..38f14bc2
--- /dev/null
+++ b/c64/basic/,stubs_math/b849.add_HALF_FAC1.s
@@ -0,0 +1,15 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - add 0.5 to FAC1
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 112
+
+// XXX implement
+
+add_HALF_FAC1:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b849.interop b/c64/basic/,stubs_math/b849.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b849.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b947.interop b/c64/basic/,stubs_math/b947.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b947.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s b/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s
new file mode 100644
index 00000000..aae0f0b2
--- /dev/null
+++ b/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s
@@ -0,0 +1,19 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - invert FAC1 mantissa
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 113
+// - https://www.c64-wiki.com/wiki/BASIC-ROM
+// - https://sta.c64.org/cbm64basconv.html
+//
+
+// XXX implement, test
+
+
+inv_FAC1_mantissa:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b983.MULSHF.s b/c64/basic/,stubs_math/b983.MULSHF.s
new file mode 100644
index 00000000..37a4fc00
--- /dev/null
+++ b/c64/basic/,stubs_math/b983.MULSHF.s
@@ -0,0 +1,17 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - SHIFT routine
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 113
+//
+
+// XXX implement, test
+
+
+MULSHF:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/b983.interop b/c64/basic/,stubs_math/b983.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/b983.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/ba59.MLTPLY.s b/c64/basic/,stubs_math/ba59.MLTPLY.s
new file mode 100644
index 00000000..369eab72
--- /dev/null
+++ b/c64/basic/,stubs_math/ba59.MLTPLY.s
@@ -0,0 +1,17 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - add a mantissa byte of FAC2 to FAC1, do it .A times
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 113
+//
+
+// XXX implement, test
+
+
+MULTPLY:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/ba59.interop b/c64/basic/,stubs_math/ba59.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/ba59.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s b/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s
new file mode 100644
index 00000000..7b5c3cc9
--- /dev/null
+++ b/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s
@@ -0,0 +1,13 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - XXX
+//
+// - https://codebase64.org/doku.php?id=base:asm_include_file_for_basic_routines
+// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
+//
+// XXX add name, label, documentation, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/bc3c.interop b/c64/basic/,stubs_math/bc3c.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/bc3c.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s b/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s
new file mode 100644
index 00000000..9555a39f
--- /dev/null
+++ b/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s
@@ -0,0 +1,12 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - XXX
+//
+// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
+//
+// XXX add name, label, documentation, implement, test
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/bc44.interop b/c64/basic/,stubs_math/bc44.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/bc44.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example
diff --git a/c64/basic/,stubs_math/bd7e.FINLOG.s b/c64/basic/,stubs_math/bd7e.FINLOG.s
new file mode 100644
index 00000000..65a18e9a
--- /dev/null
+++ b/c64/basic/,stubs_math/bd7e.FINLOG.s
@@ -0,0 +1,17 @@
+// #LAYOUT# STD * #TAKE
+// #LAYOUT# * BASIC_0 #TAKE
+// #LAYOUT# * * #IGNORE
+
+//
+// Math package - add an ASCII digit that has been converted to a signed integer to FAC1
+//
+// See also:
+// - [CM64] Computes Mapping the Commodore 64 - page 113
+//
+
+// XXX implement, test
+
+
+FINLOG:
+
+ STUB_IMPLEMENTATION()
diff --git a/c64/basic/,stubs_math/bd7e.interop b/c64/basic/,stubs_math/bd7e.interop
new file mode 100644
index 00000000..0d18777c
--- /dev/null
+++ b/c64/basic/,stubs_math/bd7e.interop
@@ -0,0 +1,3 @@
+This is an important floating point math routine, documented in many places.
+
+XXX - try to find real-life example