ぐだぐだ低レベルプログラミング(186)x86(16bit)、ASCII ADJUST一族

AAM
Joseph Halfmoon

x86命令には「BCD補正命令」なる一族あり、その中でもパックドBCD数を扱うDAA命令は御先祖の8ビット機(8080/8085)でも存在した伝統の命令です。しかしx86ではアンパックドBCD数を扱うための頭文字にAを頂く命令どもが追加されております。強力?でも今となっては盲腸みたいなもん?どうなん?

“ぐだぐだ低レベルプログラミング(186)x86(16bit)、ASCII ADJUST一族” の続きを読む

Lispと一緒(9) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る、その2

boundEC
Joseph Halfmoon

Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中です。前回は末尾に「p」がつく問いかけ(述語)どものいくつかを練習。今回はその続きです。「ピー」一族ではないけれども、今回はパソコン上のCommon LispとuLispの微妙な違いに遭遇。Lisp素人老人には是非もなし。

“Lispと一緒(9) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る、その2” の続きを読む

Pico三昧(33) ラズパイPico2:RP2350、Pico:RP2040、XIP比較

Joseph Halfmoon

前回比較したのは主記憶SRAMでした。今回は命令コードや固定データがおかれている筈のFlashです。ただしラズパイPico/Pico2の場合、FlashはQSPI接続されているので、そのままでは主記憶にはなりませぬ。その出来ないところを埋めてさもインプレースで実行できるように見せかけてくれるハードウエアがXIPです。 “Pico三昧(33) ラズパイPico2:RP2350、Pico:RP2040、XIP比較” の続きを読む

Lispと一緒(8) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る

EC_list_cons_symbol
Joseph Halfmoon

Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中。いつの御代からは知らねど、古来、問いかけ(述語、predicate)には末尾に p をつけるのだそうな。uLispとは言えども「なんちゃらピー」なる関数は大量に存在します。今回はその主なものを触ってみる初回ということで。

“Lispと一緒(8) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る” の続きを読む

Pico三昧(32) ラズパイPico2:RP2350、Pico:RP2040、SRAM比較

Joseph Halfmoon

今回比較するのは主記憶SRAM。データでもコードでも置ける普通のSRAMです。PicoのRP2040では合計264KB、Pico2のRP2350では合計524KB。でも違うのは容量だけではないみたい。バスとの接続、パワードメイン、セキュリティといろいろ差異ありっと。でも気にしなければ通り過ぎることも可?ホントか?
“Pico三昧(32) ラズパイPico2:RP2350、Pico:RP2040、SRAM比較” の続きを読む

Pico三昧(31) ラズパイPico2:RP2350、Pico:RP2040、DMAC

Joseph Halfmoon

前回はPico2とPicoの内部バスを比較してみました。似ているけれどもコマケー違いは多々あり。概ねPico2の方が強化されとります。今回拝見するのはDMAです。これまたよく似ているけれどもPico2の方が強化されている?でもね、データシート的には「左遷」されている感じがしなくもないです。どうしたDMA。

“Pico三昧(31) ラズパイPico2:RP2350、Pico:RP2040、DMAC” の続きを読む

Lispと一緒(7) ラズパイPico2でもuLisp、世界はCONSとATOMで出来ている

EC_CONS
Joseph Halfmoon

Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中。どうも「世界はCONSとATOMで出来ている」らしいです。今回はデータの構造体であるCONSを作り出すCONS関数と、CONSなのかATOMなのかを判断するATOM関数を練習してみます。根幹ゆえCommon Lispと当然の一致。

“Lispと一緒(7) ラズパイPico2でもuLisp、世界はCONSとATOMで出来ている” の続きを読む

Pico三昧(30) ラズパイPico2:RP2350、Pico:RP2040、内部バス比較

Joseph Halfmoon

前回はPico2のBoot ROM/RAMを調べました。今回はRP2350、RP2040に「似通った形」で実装されている内部バス。遠くからみると同じに見えるけれども、近寄ってみると細かく違う部分。ただし、ユーザーがその差を感じるのは処理スループットくらいか。気にしなければ知らんでも済む?いいのかそんなことで?

“Pico三昧(30) ラズパイPico2:RP2350、Pico:RP2040、内部バス比較” の続きを読む

ぐだぐだ低レベルプログラミング(185)x86(16bit)、シフト、ローテイト練習(86)

x86SFTdebug
Joseph Halfmoon

前回はx86命令(16bit)のうち「8086レベル」のシフト、ローテイト命令の動作を復習。コマケーところがメンドイものどもでした。前回は実機(実際はQEMUのエミュレーションだけれども)での動作確認をしなかったので、今回はデバッガで動かしながらの動作確認です。メンドイのでサラっと流していくぜ。いいのか?

“ぐだぐだ低レベルプログラミング(185)x86(16bit)、シフト、ローテイト練習(86)” の続きを読む

Lispと一緒(6) ラズパイPico2でもuLisp、EQとEQUALだけ?

eqequal_EC
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上で走るuLispをラズパイ Pico2 上で練習中。資源の限られたマイコンゆえCommon Lispと同じとはいきませぬ。前回のLispといったら CAR と CDR だろ~という浅はかな回では「3段重ね」まででした。今回EQとEQUAL見ていきます。EQLとかねえの?

“Lispと一緒(6) ラズパイPico2でもuLisp、EQとEQUALだけ?” の続きを読む

Lispと一緒(5) ラズパイPico2でもuLisp、まずはCARとCDR一族

car_cdr
Joseph Halfmoon

前回は吉例Lチカをやってみました。今回から uLisp の備える関数どもを端から一通り触っていきたいと思います。といっても御本家COMMON LISPのような膨大な関数があるわけではないです。約180個ほど。しかしその中のディスプレイ用関数群はディスプレイ接続しなければ不要。実際には百数十くらいか?
“Lispと一緒(5) ラズパイPico2でもuLisp、まずはCARとCDR一族” の続きを読む

Pico三昧(29) ラズパイPico2:RP2350、Boot ROMとBoot RAM

Joseph Halfmoon

前回のOTPはPico2で追加されたメモリでした。一部はユーザ使用も可能かと。一方、今回眺めてみるROM(ブートROM)はPicoの中の人がプログラムしたマスクROMみたいです。ユーザが書き変えることは出来ません。しかしその機能に毎度お世話になっておる、と。そしてPico2では専用RAMが追加されているみたい。 “Pico三昧(29) ラズパイPico2:RP2350、Boot ROMとBoot RAM” の続きを読む

Lispと一緒(4) ラズパイPico2でもuLisp、吉例Lチカ

blinkRunning
Joseph Halfmoon

ラズパイPico2をターゲットに、別シリーズにて 「C/C++ SDK」「Arduino」「MicroPython」の3種の開発環境にて吉例Lチカ。Pico2でもソフトが作れる雰囲気。しかし、心の底で引っかかっていたものがあります。組み込み用のLisp処理系、uLispです。今回は処理系インストールして吉例Lチカまで。
“Lispと一緒(4) ラズパイPico2でもuLisp、吉例Lチカ” の続きを読む

Pico三昧(28) ラズパイPico2:RP2350、OTP、ワンタイムプログラミング記憶

Joseph Halfmoon

ラズパイPico2搭載のRP2350のスペックをPicoのRP2040と比較してます。前回RP2350の「デュアルコアがまたデュアル」な制御でOTPというものが登場しました。ワンタイム・プログラミング・ストレージ。これはRP2040には存在せず、RP2350で登場したものです。今回はOTPについてざっと調べてみます。

“Pico三昧(28) ラズパイPico2:RP2350、OTP、ワンタイムプログラミング記憶” の続きを読む