Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ついに生産が終わったけどZ80でまだまだ遊びたい

KOBA789
August 10, 2024
3.6k

 ついに生産が終わったけどZ80でまだまだ遊びたい

Kernel/VM探検隊@東京 No17 で発表した内容です。
スライド内で紹介した配信のアーカイブはこちら(2本に分かれています):

【前半戦】Z80をRustで動かすまで年が越せない配信【年末特番】
https://youtube.com/live/9eTlxU6kQxg

【後半戦】ついにZ80でRustが動き始めた配信【WASMコンパイラ】
https://youtube.com/live/Oa2yR-QvZaI

KOBA789

August 10, 2024
Tweet

Transcript

  1. KOBA789 ਫ༵೔·ͰΞϚκϯʹ͍ͯҰࡢ೔ؼ͖ͬͯ·ͨ͠ ‣ ࢓ࣄ ‣ 3VTUͰਓ޻Ӵ੕ͷϑϥΠτιϑτ΢ΣΞΛॻ͍ͨΓ ‣ झຯ ‣ /PEFKTͷຊॻ͍ͨΓʢڞஶʣ

    ‣ *46$0/࿅शαʔϏεΛ࡞ͬͨΓ ‣ :PV5VCFS׆ಈΛ΍ͬͨΓ΍Βͳ͔ͬͨΓ ‣ NJTTLFZJPͷ࠷దԽΛͪΐͬͱ΍ͬͨΓ IUUQTZPVUVCFDPN!LPCB IUUQTNJTTLFZJP!LPCB ʮISUCONʯ͸ɺLINEϠϑʔגࣜձࣾͷ঎ඪ·ͨ͸ొ࿥঎ඪͰ͢ɻhttps://isucon.net
  2. lͥͬͱ͸ͪ·Δz lͥͬͺͪz w ೥ൃചͷCJU$16 w ࠓͰ΋ങ͑Δʢ੡଄தʣ w ͍ͭʹࠓ೥݄ੜ࢈ऴྃ w ઃܭ͸βΠϩάࣾ

    w ΊͪΌͪ͘ΌചΕܼͨ࡞ w ύοέʔδ͸%*1ϐϯ w ࠓ΋ੲ΋ϚχΞʹਓؾ w ΋͸΍ڭཆ ;ͱ͸
  3. ౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ

    w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf
  4. ;ͷڭՊॻతͳ࢖͍͔ͨ 4*0 1*0 $5$ͱ͍ͬͨपลճ࿏ϑΝϛϦ*$Λ઀ଓ͢Δ Z80 RAM ROM SIO PIO CTC

    ͦͷଞ ΩʔϘʔυͱ͔ ը໘ͱ͔ γϦΞϧ ௨৴ ύϥϨϧ ௨৴ λΠϚʔ
  5. ·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w

    ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/
  6. ·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w

    ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/
  7. ౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ

    w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf
  8. ҙ֎ͱෆཁͳ৴߸͸ଟ͍  w */5 /.*ׂΓࠐΈؔ࿈ͷϐϯ ‎ׂΓࠐΈ࢖Θͳ͍ͷͰෆཁ w #64\32 "$,^%."ؔ࿈ͷϐϯ ‎%."͠ͳ͍ͷͰෆཁ

    w )"-5$16ͷ)"-5Λࣔ͢ϐϯ ‎ؾʹ͠ͳ͍ͷͰෆཁ w *032*0ཁٻΛࣔ͢ϐϯ ‎࢖Θͳ͍ͷͰෆཁ ඞཁͳϐϯΛݫબ https://www.zilog.com/docs/z80/um0080.pdf
  9. 1J1JDPʹ৐ͬͯΔνοϓ w ຊདྷ(1*0͸ຊ w 1J1JDPͰ͸ຊ͕ෆࣗ༝ w (1*0Ϙʔυ্ͷ-&%ઐ༻ w (1*074:4ిѹܭଌઐ༻ w

    શ෦ͷϐϯ͕ࣗ༝ͳΒ଍ΓΔʂ 31 https://www.raspberrypi.com/products/raspberry-pi-pico/
  10. Z80 RP2040 ≤7*-≤ ≤7*)≤7$$ ≤70-≤ ≤70)≤ ௚݁0, ≤7*-≤ ≤7*)≤ ී௨ͷೖྗ

    յΕΔ ී௨ͷग़ྗ ≤7*-≤ 7$$≤7*)≤7$$  ಈ͔ͳ͍ ΫϩοΫೖྗ ≤70-≤ ≤70)≤7$$ ≤70-≤ ≤70)≤ ϨϕϧγϑλΛ ೖΕͯղܾ ͱͯ΋ࠔΔ
  11. https://forums.raspberrypi.com/viewtopic.php?p=2092122#p2091977 w ݪଇͱͯ͠ɺσʔλγʔτ௨Γʹઃܭ͢Δͷ͕͓͢͢Ί w σʔλγʔτ֎ͷ࢖͍ํ͸ࣗݾ੹೚Ͱ w ࣮͸΋͏ͪΐͬͱ޿͍ൣғͷిѹΛड͚෇͚ΒΕΔ w "%$ͷ͋Δϐϯ͸ɺ*07%% 7

    ·Ͱʢ&4%μΠΦʔυ͕͋ΔͷͰʣ w "%$ͷͳ͍ϐϯ͸ɺ*07%%7ͷͱ͖7·Ͱ w ʮ7τϨϥϯτʯ͸7ʹ଱͑Δ͜ͱΛࢦ͢ͷͰɺ ͜Ε͸ʮ7τϨϥϯτʯͱ͸ݺ͹ͳ͍ w 7ˠ7ͷॱͰిݯ౤ೖ͞ΕΔΑ͋͘Δઃܭͩͱɺ ిݯ౤ೖ࣌ʹμϝʔδ͕ೖΔΑ w ࢓༷ҧ൓Ͱ΋͙͢ʹ͸յΕͳ͍͔΋͠Εͳ͍͕ɺ࣌ؒͱͱ΋ʹμϝʔδೖͬͯ յΕΔ͔΋Α
  12. ϝϞϦΛιϑτ΢ΣΞͰ࣮૷͢Δ 8"*5Λଈ࠲ʹΞαʔτ͢Δͷ͕େࣄ w ϝϞϦΞΫηεͷͱ͖ʹ͸.3&2৴߸͕Ξαʔτ͞ΕΔ w αΠΫϧ OT Ͱσʔλόεʹ͓ฦࣄͤͶ͹ͳΒͳ͍ w ιϑτ΢ΣΞ࣮૷Ͱؒʹ߹͏Θ͚ͳ͍

    w ؒʹ߹Θͳ͍ͱ͖͸8"*5৴߸ΛΞαʔτͯ͠଴ͬͯ΋Β͏ w 8"*5৴߸΋αΠΫϧҎ಺ w ϝΠϯ$16Ͱ΍Δͱؒʹ߹Θͳ͍ͷͰ1*0Ͱ൓ࣹతʹΞαʔτ͢Δ wait 0 gpio 25 // MREQ(25)ͷཱͪԼ͕ΓΛ଴ͭ in pins, 27 side 0 // ΞυϨε౳ΛಡΈͭͭWAITΛΞαʔτ