# MachiKania Phyllosoma 開発者リファレンス Wiki > MachiKania Phyllosoma (type P) は Raspberry Pi Pico (RP2040/RP2350) 向けの ARM 用 BASIC コンパイラファームウェアです。LCD または NTSC ビデオ出力、SD カードファイルシステム、WiFi、USB キーボード、各種ペリフェラルをサポートします。 This is a Grok-Wiki source-grounded repository wiki. Use the complete Markdown link when an agent needs the full repo context. ## Context Links - [Complete Markdown wiki](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/llms-full.txt) - [Complete Markdown alias](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c.md) - [Human interactive wiki](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c) - [GitHub repository](https://github.com/machikania/phyllosoma) ## Repository - Repository: machikania/phyllosoma - Generated: 2026-05-27T07:18:03.173Z - Updated: 2026-05-27T07:18:08.881Z - Runtime: Pi · Claude Code · claude-sonnet-4-6:high - Format: Technical - Pages: 10 ## Pages - [技術オリエンテーション — システム全体像とエントリポイント](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/01-page-1.md): リポジトリの目的(RP2040/RP2350 向け BASIC コンパイラファームウェア)、2 つのファームウェアバリアント(phyllosoma / puerulus)、主要モジュールの責務、ビルド成果物 (.uf2) の種類、および開発者がこの Wiki を読み進める順序を解説します。 - [ビルドシステムと設定プロファイル](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/02-page-2.md): CMake ビルドシステムの構成、config.cmake による MACHIKANIA_BUILD 選択、LCD ドライバ・キーボード・WiFi ライブラリの自動切り替えロジック、RP2040/RP2350 向けリンカスクリプト、config/ ヘッダによるハードウェア定数の定義方法を解説します。 - [BASICコンパイラコア — 字句解析・コード生成・CMPDATA](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/03-basic-cmpdata.md): compiler.c が担う 1 パスコンパイル処理、statements.c によるステートメント解析、operators.c の演算子優先順位、cmpdata.c のコンパイル時メタデータ管理(変数名・ラベル・クラス情報の格納と検索)、ARMv6-M サムネイルオブジェクトコード生成の仕組みを解説します。 - [ランタイム実行エンジン — run.c・library.c・api.c](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/04-run.c-library.c-api.c.md): run.c の pre_run / run_code / post_run ライフサイクル、library.c のライブラリディスパッチテーブル (kmbasic_library)、api.c の表示プリミティブ (printchar/printstr 等)、error.c のエラー停止フロー、exception.c の ARM ハードウェア例外ハンドラを詳説します。 - [メモリ管理・変数・クラスシステム](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/05-page-5.md): memory.c のブロックアロケータ(alloc_memory / garbage_collection)、variable.c の変数番号管理、value.c の型解決(整数・浮動小数点・文字列)、class.c のオブジェクト生成・フィールドアクセス・静的メンバ管理、globalvars.c のグローバル状態を解説します。 - [ディスプレイインタフェース — LCD・NTSCビデオドライバ層](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/06-lcd-ntsc.md): interface/graphlib_lcd.c (ILI9341/ILI9488/ST7789 SPI LCD) と interface/graphlib_ntsc.c (RP2040 PWM 生成 NTSC 信号) の共通 graphlib.h API、display.c による描画ライブラリディスパッチ、editor.c / editor_ntsc.c のテキストエディタ描画ループ、フォントデータ (fontdata.c) の構造を解説します。 - [I/Oとペリフェラル制御 — GPIO・SPI・I2C・音楽・タイマー・RTC](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/07-i-o-gpio-spi-i2c-rtc.md): io.c の lib_gpio / lib_spi / lib_i2c / lib_serial / lib_pwm / lib_analog 実装、timer.c の割り込み駆動タイマー (INTERRUPT_TIMER / INTERRUPT_DRAWCOUNT 等)、music.c の PWM 音声合成とウェーブ再生、rtc.c のリアルタイムクロック API、MACHIKAP.INI による I/O 初期化設定を解説します。 - [WiFiスタックとSDカードファイルシステム](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/08-wifi-sd.md): wifi/withwifi.c の CYW43 + lwIP + mbedTLS 統合、socket.c の TCP クライアント/サーバ/TLS API、wifi/picow_ntp_client.c の NTP 同期、file.c のファイル操作ステートメント群、interface/ff.c (FatFs) と interface/pico-sdmm.c (SPI MMC ドライバ)、withoutwifi.c のスタブ切り替えを解説します。 - [エディタと入力ハンドリング — USBキーボード・PCシリアル・ファイル選択](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/09-usb-pc.md): withkeyboard.c (TinyUSB ホスト HID キーボードモード) と withoutkeyboard.c (USB シリアル PC 接続モード) の分岐、interface/keyinput.c のキー入力バッファリング、interface/usbkeyboard.c の HID 仮想キーテーブル変換、interface/fileselect.c の SD カードファイルブラウザ、editor.c のインタラクティブ BASIC テキストエディタを解説します。 - [拡張ポイントと開発者リファレンス — auxcode・hexfile・デバッグ・help](https://grok-wiki.com/public/wiki/machikania-phyllosoma-fab169c4381c/pages/10-auxcode-hexfile-help.md): auxcode/auxcode.c の補助コードライブラリ拡張インタフェース (aux_statements / aux_int_functions 等)、hexfile.c の Intel HEX 直接実行機能 (runHex)、pcconnect.c の PC シリアルプロトコル、debug.c のデバッグユーティリティ、help.c の組み込みヘルプ辞書、開発者が新規ライブラリを追加する際の手順と注意点をまとめます。 ## Source Files - `api.c` - `api.h` - `auxcode/auxcode.c` - `auxcode/auxcode.cmake` - `class.c` - `CMakeLists.txt` - `cmpdata.c` - `compiler.c` - `compiler.h` - `config.cmake` - `config/pico_ili9341.h` - `config/pico_ntsc.h` - `core1.c` - `debug.c` - `display.c` - `editor.c` - `error.c` - `exception.c` - `file.c` - `float.c` - `functions.c` - `globalvars.c` - `help.c` - `hexfile.c` - `integer.c` - `interface/ff.c` - `interface/fileselect.c` - `interface/fontdata.c` - `interface/graphlib_lcd.c` - `interface/graphlib_ntsc.c` - `interface/graphlib.h` - `interface/ili9341_spi.c` - `interface/keyinput.c` - `interface/pico-sdmm.c` - `interface/rp2040_pwm_ntsc_textgraph.c` - `interface/usbkeyboard.c` - `io.c` - `io.h` - `library.c` - `main.c` - `memmap_machikania_pico2.ld` - `memmap_machikania.ld` - `memory.c` - `music.c` - `operators.c` - `pcconnect/pcconnect.c` - `README.md` - `rtc.c` - `run.c` - `statements.c` - `timer.c` - `value.c` - `variable.c` - `wifi/socket.c` - `wifi/wifi.h` - `wifi/withoutwifi.c` - `wifi/withwifi.c` - `withkeyboard.c` - `withoutkeyboard.c`