{"id":2396,"date":"2019-12-14T22:26:27","date_gmt":"2019-12-14T19:26:27","guid":{"rendered":"http:\/\/demensdeum.com\/blog\/?p=2396"},"modified":"2024-12-16T22:32:32","modified_gmt":"2024-12-16T19:32:32","slug":"%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d0%b8%d0%b3%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-zx-spectrum-%d0%bd%d0%b0-c","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/ja\/2019\/12\/14\/%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d0%b8%d0%b3%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-zx-spectrum-%d0%bd%d0%b0-c\/","title":{"rendered":"C \u306b\u3088\u308b ZX Spectrum \u306e\u30b2\u30fc\u30e0\u958b\u767a"},"content":{"rendered":"<p>\u3053\u306e\u30ca\u30f3\u30bb\u30f3\u30b9\u306a\u6295\u7a3f\u306f\u3001C \u8a00\u8a9e\u306e\u53e4\u3044 ZX Spectrum \u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u7528\u306e\u30b2\u30fc\u30e0\u958b\u767a\u306b\u7279\u5316\u3057\u3066\u3044\u307e\u3059\u3002\u30cf\u30f3\u30b5\u30e0\u306a\u7537\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><a href=\"https:\/\/www.flickr.com\/photos\/quenerapu\/2622099393\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2398\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2019\/12\/2622099393_8199976c15_w.jpg\" alt=\"\" width=\"400\" height=\"294\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2019\/12\/2622099393_8199976c15_w.jpg 400w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2019\/12\/2622099393_8199976c15_w-300x221.jpg 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>1982 \u5e74\u306b\u751f\u7523\u304c\u958b\u59cb\u3055\u308c\u30011992 \u5e74\u307e\u3067\u751f\u7523\u3055\u308c\u307e\u3057\u305f\u3002\u30de\u30b7\u30f3\u306e\u6280\u8853\u7684\u7279\u5fb4: 8 \u30d3\u30c3\u30c8 Z80 \u30d7\u30ed\u30bb\u30c3\u30b5\u300116 \uff5e 128 kb \u306e\u30e1\u30e2\u30ea\u3001\u304a\u3088\u3073<b>AY-3-8910 \u30b5\u30a6\u30f3\u30c9 \u30c1\u30c3\u30d7<\/b><\/p>\n<p>\u306a\u3069\u306e\u305d\u306e\u4ed6\u306e\u62e1\u5f35\u6a5f\u80fd\u3002<\/p>\n<p>\u3053\u306e\u30de\u30b7\u30f3\u306e\u30b3\u30f3\u30da\u30c6\u30a3\u30b7\u30e7\u30f3 <a href=\"http:\/\/rgb.yandex\/\" target=\"_blank\" rel=\"noopener noreferrer\">Yandex Retro Games Battle 2019<\/a> \u306e\u4e00\u74b0\u3068\u3057\u3066\u3001\u79c1\u306f\u30b2\u30fc\u30e0\u3092\u66f8\u304d\u307e\u3057\u305fZ80\u306e\u30a2\u30bb\u30f3\u30d6\u30ea\u8a00\u8a9e\u3092\u5b66\u3076\u6642\u9593\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u3001C\u3067\u958b\u767a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002\u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3\u3068\u3057\u3066\u3001\u65e2\u88fd\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002 z88dk \u306b\u306f\u3001Spectrum \u7528\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5\u3092\u9ad8\u901f\u5316\u3059\u308b\u305f\u3081\u306e C \u30b3\u30f3\u30d1\u30a4\u30e9\u30fc\u3068\u591a\u304f\u306e\u88dc\u52a9\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001MSX\u3001Texas Instruments \u96fb\u5353\u306a\u3069\u3001\u4ed6\u306e\u591a\u304f\u306e Z80 \u30de\u30b7\u30f3\u3082\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u3042\u308b z88dk \u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3\u306b\u95a2\u3059\u308b\u79c1\u306e\u8868\u9762\u7684\u306a\u98db\u884c\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u3001OOP \u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u5b9f\u88c5\u3057\u3001\u30c7\u30b6\u30a4\u30f3 \u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6a5f\u80fd<\/h3>\n<p>z88dk \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30de\u30cb\u30e5\u30a2\u30eb\u306b\u5f93\u3063\u3066\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001Ubuntu \u30e6\u30fc\u30b6\u30fc\u5411\u3051\u306b\u3001\u6b21\u306e\u6a5f\u80fd\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Z80 \u7528\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u304c deb \u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u3089\u3092\u524a\u9664\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3 \u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u4e92\u63db\u6027\u304c\u306a\u3044\u305f\u3081\u3001z88dk \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 bin \u30d5\u30a9\u30eb\u30c0\u304b\u3089\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u3001\u304a\u305d\u3089\u304f\u4f55\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002 \/p><\/p>\n<h3>\u30cf\u30ed\u30fc\u30ef\u30fc\u30eb\u30c9<\/h3>\n<p>Hello World \u306e\u8a18\u8ff0\u306f\u975e\u5e38\u306b\u7c21\u5358\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>#include \n\nvoid main()\n{\n    printf(\"Hello World\");\n}\n<\/code><\/pre>\n<\/div>\n<p>\u30bf\u30c3\u30d7 \u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u306f\u3055\u3089\u306b\u7c21\u5358\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>zcc +zx -lndos -create-app -o helloworld helloworld.c\n<\/code><\/pre>\n<\/div>\n<p>\u5b9f\u884c\u3059\u308b\u306b\u306f\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u306a\u3069\u3001\u30bf\u30c3\u30d7 \u30d5\u30a1\u30a4\u30eb\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b ZX Spectrum \u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<br \/><a href=\"http:\/\/jsspeccy.zxdemo.org\/\">http:\/\/jsspeccy.zxdemo.org\/<\/a><\/p>\n<h3>\u5168\u753b\u9762\u3067\u753b\u50cf\u306b\u63cf\u753b\u3057\u307e\u3059<\/h3>\n<p><i>tl;dr \u753b\u50cf\u306f\u30bf\u30a4\u30eb (\u30b5\u30a4\u30ba 8&#215;8 \u30d4\u30af\u30bb\u30eb\u306e\u30bf\u30a4\u30eb) \u3067\u63cf\u753b\u3055\u308c\u3001\u30bf\u30a4\u30eb\u81ea\u4f53\u306f Spectrum \u30d5\u30a9\u30f3\u30c8\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3001\u753b\u50cf\u306f\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304b\u3089\u306e\u7dda\u3068\u3057\u3066\u5370\u5237\u3055\u308c\u307e\u3059\u3002 <\/i><\/p>\n<p>\u30b9\u30d7\u30e9\u30a4\u30c8\u304a\u3088\u3073\u30bf\u30a4\u30eb\u51fa\u529b\u30e9\u30a4\u30d6\u30e9\u30ea sp1 \u306f\u3001UDG \u3092\u4f7f\u7528\u3057\u3066\u30bf\u30a4\u30eb\u3092\u51fa\u529b\u3057\u307e\u3059\u3002\u753b\u50cf\u306f\u500b\u3005\u306e UDG (\u30bf\u30a4\u30eb) \u306e\u30bb\u30c3\u30c8\u306b\u5909\u63db\u3055\u308c\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f7f\u7528\u3057\u3066\u753b\u9762\u4e0a\u3067\u7d44\u307f\u7acb\u3066\u3089\u308c\u307e\u3059\u3002 UDG \u306f\u30c6\u30ad\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u753b\u50cf\u306b\u975e\u5e38\u306b\u5927\u304d\u306a\u30bf\u30a4\u30eb\u306e\u30bb\u30c3\u30c8 (\u305f\u3068\u3048\u3070\u3001128 \u30bf\u30a4\u30eb\u3092\u8d85\u3048\u308b) \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30bb\u30c3\u30c8\u306e\u5883\u754c\u3092\u8d8a\u3048\u3066\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30b9\u30da\u30af\u30c8\u30eb\u3092\u6d88\u53bb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30d5\u30a9\u30f3\u30c8\u3002\u3053\u306e\u5236\u9650\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u3001\u30d9\u30fc\u30b9 128 &#8211; \u3092\u4f7f\u7528\u3057\u307e\u3057\u305f\u3002\u5143\u306e\u30d5\u30a9\u30f3\u30c8\u3092\u305d\u306e\u307e\u307e\u6b8b\u3057\u306a\u304c\u3089\u753b\u50cf\u3092\u7c21\u7d20\u5316\u3059\u308b\u3053\u3068\u3067\u3001255 \u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u5199\u771f\u306e\u7c21\u7565\u5316\u306b\u3064\u3044\u3066\u3002<\/p>\n<p>\u5168\u753b\u9762\u753b\u50cf\u3092\u63cf\u753b\u3059\u308b\u306b\u306f\u3001\u6b21\u306e 3 \u3064\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u6e96\u5099\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\u30ae\u30f3\u30d7<br \/>img2\u30b9\u30da\u30c3\u30af<br \/>png2c-z88dk<\/p>\n<p>\u672c\u7269\u306e ZX \u30de\u30f3\u3001\u672c\u7269\u306e\u30ec\u30c8\u30ed\u6226\u58eb\u306b\u306f\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u30b9\u30da\u30af\u30c8\u30eb \u30d1\u30ec\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u30b0\u30e9\u30d5\u30a3\u30c3\u30af \u30a8\u30c7\u30a3\u30bf\u3092\u958b\u304d\u3001\u753b\u50cf\u51fa\u529b\u306e\u6a5f\u80fd\u3092\u628a\u63e1\u3057\u3001\u753b\u50cf\u51fa\u529b\u3092\u624b\u52d5\u3067\u6e96\u5099\u3057\u3001png2c-z88dk \u307e\u305f\u306f png2scr \u3092\u4f7f\u7528\u3057\u3066\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u3067\u3059\u3002< \/p><\/p>\n<p>\u3088\u308a\u7c21\u5358\u306a\u65b9\u6cd5 &#8211; 32 \u30d3\u30c3\u30c8\u753b\u50cf\u3092\u53d6\u5f97\u3057\u3001Gimp \u3067\u8272\u6570\u3092 3 \uff5e 4 \u306b\u5207\u308a\u66ff\u3048\u3001\u5c11\u3057\u7de8\u96c6\u3057\u3066\u304b\u3089\u3001\u8272\u5236\u9650\u3092\u624b\u52d5\u3067\u51e6\u7406\u3057\u306a\u3044\u3088\u3046\u306b img2spec \u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3001png \u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3057\u3066\u3001png2c \u3092\u4f7f\u7528\u3057\u3066 C \u914d\u5217\u306b\u5909\u63db\u3057\u307e\u3059\u3002 z88dk\u3002<\/p >\n<p>\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3092\u6210\u529f\u3055\u305b\u308b\u306b\u306f\u3001\u5404\u30bf\u30a4\u30eb\u306b 2 \u8272\u4ee5\u4e0a\u3092\u542b\u3081\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u305d\u306e\u7d50\u679c\u3001\u4e00\u610f\u306e\u30bf\u30a4\u30eb\u306e\u6570\u3092\u542b\u3080 h \u30d5\u30a1\u30a4\u30eb\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002\u30bf\u30a4\u30eb\u6570\u304c 128 \u3092\u8d85\u3048\u308b\u5834\u5408\u306f\u3001Gimp \u3067\u753b\u50cf\u3092\u7c21\u7565\u5316\u3057 (\u518d\u73fe\u6027\u3092\u9ad8\u3081)\u3001\u65b0\u3057\u3044\u30bf\u30a4\u30eb\u306b\u5bfe\u3057\u3066\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u624b\u9806\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002 .<\/p>\n<p>\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u5f8c\u3001\u6587\u5b57\u901a\u308a\u30bf\u30a4\u30eb\u304b\u3089\u300c\u30d5\u30a9\u30f3\u30c8\u300d\u3092\u30ed\u30fc\u30c9\u3057\u3001\u30bf\u30a4\u30eb \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304b\u3089\u306e\u300c\u30c6\u30ad\u30b9\u30c8\u300d\u3092\u753b\u9762\u306b\u5370\u5237\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u300c\u30af\u30e9\u30b9\u300d\u306e\u4f8b\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>\/\/ \u0433\u0440\u0443\u0437\u0438\u043c \u0448\u0440\u0438\u0444\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c\n    unsigned char *pt = fullscreenImage->tiles;\n\n    for (i = 0; i < fullscreenImage->tilesLength; i++, pt += 8) {\n            sp1_TileEntry(fullscreenImage->tilesBase + i, pt);\n    }\n\n    \/\/ \u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0443\u0440\u0441\u043e\u0440 \u0432 0,0\n    sp1_SetPrintPos(&ps0, 0, 0);\n\n    \/\/ \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443\n    sp1_PrintString(&ps0, fullscreenImage->ptiles);\n<\/code><\/pre>\n<\/div>\n<h3>\u753b\u9762\u4e0a\u306b\u30b9\u30d7\u30e9\u30a4\u30c8\u3092\u63cf\u753b\u3059\u308b<\/h3>\n<p>\u6b21\u306b\u3001\u753b\u9762\u4e0a\u306b 16&#215;16 \u30d4\u30af\u30bb\u30eb\u306e\u30b9\u30d7\u30e9\u30a4\u30c8\u3092\u63cf\u753b\u3059\u308b\u65b9\u6cd5\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3084\u8272\u306e\u5909\u66f4\u307e\u3067\u306f\u3067\u304d\u306a\u304b\u3063\u305f\u306e\u3067&#8230;\u304a\u305d\u3089\u304f\u3053\u306e\u6bb5\u968e\u3067\u3059\u3067\u306b\u30e1\u30e2\u30ea\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u3053\u3068\u306f\u4e9b\u7d30\u306a\u3053\u3068\u3067\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u3001\u30b2\u30fc\u30e0\u306b\u306f\u900f\u660e\u306a\u30e2\u30ce\u30af\u30ed \u30b9\u30d7\u30e9\u30a4\u30c8\u306e\u307f\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>Gimp \u3067\u30e2\u30ce\u30af\u30ed\u306e PNG \u30a4\u30e1\u30fc\u30b8 16&#215;16 \u3092\u63cf\u753b\u3057\u3001png2sp1sprite \u3092\u4f7f\u7528\u3057\u3066\u305d\u308c\u3092 asm \u30a2\u30bb\u30f3\u30d6\u30ea \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u3001C \u30b3\u30fc\u30c9\u3067\u30a2\u30bb\u30f3\u30d6\u30ea \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u914d\u5217\u3092\u5ba3\u8a00\u3057\u3001\u30a2\u30bb\u30f3\u30d6\u30ea\u6bb5\u968e\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002< \/p><\/p>\n<p>\u30b9\u30d7\u30e9\u30a4\u30c8 \u30ea\u30bd\u30fc\u30b9\u3092\u5ba3\u8a00\u3059\u308b\u6bb5\u968e\u306e\u5f8c\u3001\u30b9\u30d7\u30e9\u30a4\u30c8 \u30ea\u30bd\u30fc\u30b9\u3092\u753b\u9762\u306e\u76ee\u7684\u306e\u4f4d\u7f6e\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u30b2\u30fc\u30e0 \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u300c\u30af\u30e9\u30b9\u300d\u306e\u30b3\u30fc\u30c9\u306e\u4f8b\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>    struct sp1_ss *bubble_sprite = sp1_CreateSpr(SP1_DRAW_MASK2LB, SP1_TYPE_2BYTE, 3, 0, 0);\n    sp1_AddColSpr(bubble_sprite, SP1_DRAW_MASK2,    SP1_TYPE_2BYTE, col2-col1, 0);\n    sp1_AddColSpr(bubble_sprite, SP1_DRAW_MASK2RB,  SP1_TYPE_2BYTE, 0, 0);\n    sp1_IterateSprChar(bubble_sprite, initialiseColour);\n<\/code><\/pre>\n<\/div>\n<p>\u95a2\u6570\u306e\u540d\u524d\u304b\u3089 &#8211; \u306e\u610f\u5473\u306f\u304a\u304a\u3088\u305d\u7406\u89e3\u3067\u304d\u307e\u3059\u3002\u30b9\u30d7\u30e9\u30a4\u30c8\u306b\u30e1\u30e2\u30ea\u3092\u5272\u308a\u5f53\u3066\u30018&#215;8 \u5217\u3092 2 \u3064\u8ffd\u52a0\u3057\u3001\u30b9\u30d7\u30e9\u30a4\u30c8\u306b\u8272\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<p>\u30b9\u30d7\u30e9\u30a4\u30c8\u306e\u4f4d\u7f6e\u306f\u5404\u30d5\u30ec\u30fc\u30e0\u306b\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>sp1_MoveSprPix(gameObject->gameObjectSprite, Renderer_fullScreenRect, gameObject->sprite_col, gameObject->x, gameObject->y);\n<\/code><\/pre>\n<\/div>\n<h3>OOP \u306e\u30a8\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3<\/h3>\n<p>C \u306b\u306f OOP \u306e\u69cb\u6587\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u305d\u308c\u3067\u3082\u672c\u5f53\u306b\u4f7f\u3044\u305f\u3044\u5834\u5408\u306f\u3069\u3046\u3059\u308c\u3070\u3088\u3044\u3067\u3057\u3087\u3046\u304b? OOP \u6a5f\u5668\u306a\u3069\u3068\u3044\u3046\u3082\u306e\u306f\u5b58\u5728\u305b\u305a\u3001\u6700\u7d42\u7684\u306b\u306f\u3059\u3079\u3066\u304c\u30de\u30b7\u30f3 \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e 1 \u3064\u306b\u884c\u304d\u7740\u304d\u3001\u305d\u3053\u306b\u306f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3084\u305d\u308c\u306b\u95a2\u9023\u3059\u308b\u4ed6\u306e\u62bd\u8c61\u6982\u5ff5\u304c\u307e\u3063\u305f\u304f\u5b58\u5728\u3057\u306a\u3044\u3068\u3044\u3046\u8003\u3048\u306b\u5fc3\u3092\u3064\u306a\u304e\u3001\u5553\u767a\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002< \/p><\/p>\n<p>\u3053\u306e\u4e8b\u5b9f\u306b\u3088\u308a\u3001\u79c1\u306f\u9577\u3044\u9593\u3001\u306a\u305c OOP \u304c\u5fc5\u8981\u306a\u306e\u304b\u3001\u6700\u7d42\u7684\u306b\u3059\u3079\u3066\u304c\u30de\u30b7\u30f3\u30b3\u30fc\u30c9\u306b\u306a\u308b\u306e\u306b\u306a\u305c OOP \u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u304b\u200b\u200b\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<p>\u3057\u304b\u3057\u3001\u88fd\u54c1\u958b\u767a\u306b\u643a\u308f\u3063\u305f\u5f8c\u3001\u4e3b\u306b\u958b\u767a\u306e\u67d4\u8edf\u6027\u3001\u9069\u5207\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u306b\u3088\u308b\u30b3\u30fc\u30c9\u4fdd\u8b77\u30e1\u30ab\u30cb\u30ba\u30e0\u3001\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u524a\u6e1b\u3001\u30c1\u30fc\u30e0\u4f5c\u696d\u306e\u7c21\u7d20\u5316\u306a\u3069\u3001\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 \u30d1\u30e9\u30c0\u30a4\u30e0\u306e\u697d\u3057\u3055\u3092\u767a\u898b\u3057\u307e\u3057\u305f\u3002\u4e0a\u8a18\u306e\u30e1\u30ea\u30c3\u30c8\u306f\u3059\u3079\u3066\u30013 \u3064\u306e\u67f1\u304b\u3089\u751f\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30ba\u30e0\u3001\u30ab\u30d7\u30bb\u30eb\u5316\u3001\u7d99\u627f\u3002<\/p>\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u95a2\u9023\u3059\u308b\u554f\u984c\u306e\u89e3\u6c7a\u304c\u7c21\u7d20\u5316\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3082\u6ce8\u76ee\u306b\u5024\u3057\u307e\u3059\u3002\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u4e0a\u306e\u554f\u984c\u306e 80% \u306f\u524d\u4e16\u7d00\u306b\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u79d1\u5b66\u8005\u306b\u3088\u3063\u3066\u89e3\u6c7a\u3055\u308c\u3001\u30c7\u30b6\u30a4\u30f3 \u30d1\u30bf\u30fc\u30f3\u306b\u95a2\u3059\u308b\u6587\u732e\u3067\u8aac\u660e\u3055\u308c\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\u6b21\u306b\u3001OOP \u306e\u3088\u3046\u306a\u69cb\u6587\u3092 C \u306b\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<p>\u30af\u30e9\u30b9 \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306e\u57fa\u790e\u3068\u3057\u3066 C \u69cb\u9020\u4f53\u3092\u4f7f\u7528\u3059\u308b\u65b9\u304c\u4fbf\u5229\u3067\u3059\u3002\u3082\u3061\u308d\u3093\u3001\u30d0\u30a4\u30c8 \u30d0\u30c3\u30d5\u30a1\u3092\u4f7f\u7528\u3057\u305f\u308a\u3001\u30af\u30e9\u30b9\u3084\u30e1\u30bd\u30c3\u30c9\u306e\u72ec\u81ea\u306e\u69cb\u9020\u3092\u4f5c\u6210\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3059\u304c\u3001\u306a\u305c\u8eca\u8f2a\u306e\u518d\u767a\u660e\u304c\u5fc5\u8981\u306a\u306e\u3067\u3057\u3087\u3046\u304b?\u7d50\u5c40\u306e\u3068\u3053\u308d\u3001\u79c1\u305f\u3061\u306f\u3059\u3067\u306b\u69cb\u6587\u3092\u518d\u767a\u660e\u3057\u3064\u3064\u3042\u308b\u306e\u3067\u3059\u3002<\/p>\n<h4>\u30af\u30e9\u30b9\u30c7\u30fc\u30bf<\/h4>\n<p>\u30b2\u30fc\u30e0\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u300c\u30af\u30e9\u30b9\u300d\u30c7\u30fc\u30bf\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u4f8b:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>struct GameObjectStruct {\n    struct sp1_ss *gameObjectSprite;\n    unsigned char *sprite_col;\n    unsigned char x;\n    unsigned char y;\n    unsigned char referenceCount;\n    unsigned char beforeHideX;\n    unsigned char beforeHideY;\n};\ntypedef struct GameObjectStruct GameObject;\n<\/code><\/pre>\n<\/div>\n<p>\u30af\u30e9\u30b9\u3092\u300cGameObject.h\u300d\u3068\u3057\u3066\u4fdd\u5b58\u3057\u3001\u9069\u5207\u306a\u5834\u6240\u306b #include \u300cGameObject.h\u300d\u3092\u5b9f\u884c\u3057\u3066\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<h4>\u30af\u30e9\u30b9\u30e1\u30bd\u30c3\u30c9<\/h4>\n<p>Objective-C \u8a00\u8a9e\u306e\u958b\u767a\u8005\u306e\u7d4c\u9a13\u3092\u8003\u616e\u3059\u308b\u3068\u3001\u30af\u30e9\u30b9 \u30e1\u30bd\u30c3\u30c9\u306e\u30b7\u30b0\u30cd\u30c1\u30e3\u306f\u30b0\u30ed\u30fc\u30d0\u30eb \u30b9\u30b3\u30fc\u30d7\u306e\u95a2\u6570\u3068\u306a\u308a\u3001\u6700\u521d\u306e\u5f15\u6570\u306f\u5e38\u306b\u30c7\u30fc\u30bf\u69cb\u9020\u3068\u306a\u308a\u3001\u305d\u306e\u5f8c\u306b\u30e1\u30bd\u30c3\u30c9\u5f15\u6570\u304c\u7d9a\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u300c\u30af\u30e9\u30b9\u300dGameObject \u306e\u300c\u30e1\u30bd\u30c3\u30c9\u300d\u306e\u4f8b\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>void GameObject_hide(GameObject *gameObject) {\n    gameObject->beforeHideX = gameObject->x;\n    gameObject->beforeHideY = gameObject->y;\n    gameObject->y = 200;\n}\n<\/code><\/pre>\n<\/div>\n<p>\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>GameObject_hide(gameObject);\n<\/code><\/pre>\n<\/div>\n<p>\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30fc\u3068\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u30fc\u306f\u540c\u3058\u65b9\u6cd5\u3067\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30fc\u3092\u30a2\u30ed\u30b1\u30fc\u30bf\u30fc\u304a\u3088\u3073\u30d5\u30a3\u30fc\u30eb\u30c9\u521d\u671f\u5316\u5b50\u3068\u3057\u3066\u5b9f\u88c5\u3059\u308b\u3053\u3068\u306f\u53ef\u80fd\u3067\u3059\u304c\u3001\u79c1\u306f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5272\u308a\u5f53\u3066\u3068\u521d\u671f\u5316\u3092\u500b\u5225\u306b\u5236\u5fa1\u3059\u308b\u3053\u3068\u3092\u597d\u307f\u307e\u3059\u3002<\/p>\n<h4>\u30e1\u30e2\u30ea\u306e\u64cd\u4f5c<\/h4>\n<p>C++ \u3068\u4e00\u81f4\u3059\u308b\u3088\u3046\u306b\u3001\u65b0\u3057\u3044\u30de\u30af\u30ed\u3068\u524a\u9664\u30de\u30af\u30ed\u3067\u30e9\u30c3\u30d7\u3055\u308c\u305f malloc \u3068 free \u3092\u4f7f\u7528\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u306e\u624b\u52d5\u30e1\u30e2\u30ea\u7ba1\u7406:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>#define new(X) (X*)malloc(sizeof(X))\n#define delete(X) free(X)\n<\/code><\/pre>\n<\/div>\n<p>\u8907\u6570\u306e\u30af\u30e9\u30b9\u3067\u540c\u6642\u306b\u4f7f\u7528\u3055\u308c\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5834\u5408\u3001\u53e4\u3044 Objective-C \u30e9\u30f3\u30bf\u30a4\u30e0 ARC \u30e1\u30ab\u30cb\u30ba\u30e0\u306e\u30a4\u30e1\u30fc\u30b8\u3068\u540c\u69d8\u306b\u3001\u53c2\u7167\u30ab\u30a6\u30f3\u30c8\u306b\u57fa\u3065\u3044\u3066\u534a\u624b\u52d5\u306e\u30e1\u30e2\u30ea\u7ba1\u7406\u304c\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>void GameObject_retain(GameObject *gameObject) {\n    gameObject->referenceCount++;\n}\n\nvoid GameObject_release(GameObject *gameObject) {\n    gameObject->referenceCount--;\n\n    if (gameObject->referenceCount < 1) { sp1_MoveSprAbs(gameObject->gameObjectSprite, &Renderer_fullScreenRect, NULL, 0, 34, 0, 0);\n        sp1_DeleteSpr(gameObject->gameObjectSprite);\n        delete(gameObject);\n    }\n}\n<\/code><\/pre>\n<\/div>\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u5404\u30af\u30e9\u30b9\u306f\u3001retain \u3092\u4f7f\u7528\u3057\u3066\u5171\u6709\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f7f\u7528\u3092\u5ba3\u8a00\u3057\u3001release \u3092\u901a\u3058\u3066\u6240\u6709\u6a29\u3092\u89e3\u653e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306e ARC \u3067\u306f\u3001\u81ea\u52d5\u4fdd\u6301\/\u89e3\u653e\u547c\u3073\u51fa\u3057\u304c\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>\u97ff\u3051\uff01<\/h3>\n<p>Spectrum \u306b\u306f 1 \u30d3\u30c3\u30c8\u97f3\u697d\u3092\u518d\u751f\u3067\u304d\u308b\u30c4\u30a4\u30fc\u30bf\u30fc\u304c\u3042\u308a\u3001\u5f53\u6642\u306e\u4f5c\u66f2\u5bb6\u306f\u6700\u5927 4 \u3064\u306e\u30b5\u30a6\u30f3\u30c9 \u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u540c\u6642\u306b\u518d\u751f\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>Spectrum 128k \u306b\u306f\u3001\u30c8\u30e9\u30c3\u30ab\u30fc \u30df\u30e5\u30fc\u30b8\u30c3\u30af\u3092\u518d\u751f\u3067\u304d\u308b\u5225\u500b\u306e\u30b5\u30a6\u30f3\u30c9 \u30c1\u30c3\u30d7 AY-3-8910 \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>z88dk \u306e\u30c4\u30a4\u30fc\u30bf\u30fc\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059<\/p>\n<h3>\u4eca\u5f8c\u5b66\u3070\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3053\u3068<\/h3>\n<p>\u79c1\u306f\u3001Spectrum \u306b\u3064\u3044\u3066\u77e5\u308a\u3001z88dk \u3092\u4f7f\u7528\u3057\u3066\u30b2\u30fc\u30e0\u3092\u5b9f\u88c5\u3057\u3001\u591a\u304f\u306e\u8208\u5473\u6df1\u3044\u3053\u3068\u3092\u5b66\u3076\u3053\u3068\u306b\u8208\u5473\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u305f\u3068\u3048\u3070\u3001Z80 \u30a2\u30bb\u30f3\u30d6\u30e9\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Spectrum \u306e\u30d5\u30eb\u30d1\u30ef\u30fc\u3092\u4f7f\u7528\u3057\u305f\u308a\u3001\u30e1\u30e2\u30ea \u30d0\u30f3\u30af\u3092\u64cd\u4f5c\u3057\u305f\u308a\u3001AY-3-8910 \u30b5\u30a6\u30f3\u30c9 \u30c1\u30c3\u30d7\u3092\u64cd\u4f5c\u3057\u305f\u308a\u3067\u304d\u308b\u305f\u3081\u3001\u307e\u3060\u5b66\u3076\u3079\u304d\u3053\u3068\u304c\u305f\u304f\u3055\u3093\u3042\u308a\u307e\u3059\u3002\u6765\u5e74\u3082\u30b3\u30f3\u30c6\u30b9\u30c8\u306b\u53c2\u52a0\u3057\u305f\u3044\u3068\u601d\u3063\u3066\u3044\u307e\u3059!<\/p>\n<h3>\u30ea\u30f3\u30af<\/h3>\n<p><a href=\"https:\/\/rgb.yandex\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/rgb.yandex<\/a><br \/><a href=\"https:\/\/vk.com\/sinc_lair\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/vk.com\/sinc_lair<\/a><br \/>\n<a href=\"https:\/\/www.z88dk.org\/forum\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.z88dk.org\/forum\/<\/a><\/p>\n<h3>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h3>\n<p><a href=\"https:\/\/gitlab.com\/demensdeum\/zx-projects\/tree\/master\/interceptor2020\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/gitlab.com\/demensdeum\/ zx-projects\/tree\/master\/interceptor2020<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u30ca\u30f3\u30bb\u30f3\u30b9\u306a\u6295\u7a3f\u306f\u3001C \u8a00\u8a9e\u306e\u53e4\u3044 ZX Spectrum \u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u7528\u306e\u30b2\u30fc\u30e0\u958b\u767a\u306b\u7279\u5316\u3057\u3066\u3044\u307e\u3059\u3002\u30cf\u30f3\u30b5\u30e0\u306a\u7537\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002 1982 \u5e74\u306b\u751f\u7523\u304c\u958b\u59cb\u3055\u308c\u30011992 \u5e74\u307e\u3067\u751f\u7523\u3055\u308c\u307e\u3057\u305f\u3002\u30de\u30b7\u30f3\u306e\u6280\u8853\u7684\u7279\u5fb4: 8 \u30d3\u30c3\u30c8 Z80 \u30d7\u30ed\u30bb\u30c3\u30b5\u300116 \uff5e 128 kb \u306e\u30e1\u30e2\u30ea\u3001\u304a\u3088\u3073AY-3-8910 \u30b5\u30a6\u30f3\u30c9 \u30c1\u30c3\u30d7 \u306a\u3069\u306e\u305d\u306e\u4ed6\u306e\u62e1\u5f35\u6a5f\u80fd\u3002 \u3053\u306e\u30de\u30b7\u30f3\u306e\u30b3\u30f3\u30da\u30c6\u30a3\u30b7\u30e7\u30f3 Yandex Retro Games Battle 2019 \u306e\u4e00\u74b0\u3068\u3057\u3066\u3001\u79c1\u306f\u30b2\u30fc\u30e0\u3092\u66f8\u304d\u307e\u3057\u305fZ80\u306e\u30a2\u30bb\u30f3\u30d6\u30ea\u8a00\u8a9e\u3092\u5b66\u3076\u6642\u9593\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u3001C\u3067\u958b\u767a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002\u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3\u3068\u3057\u3066\u3001\u65e2\u88fd\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002 z88dk \u306b\u306f\u3001Spectrum \u7528\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5\u3092\u9ad8\u901f\u5316\u3059\u308b\u305f\u3081\u306e C \u30b3\u30f3\u30d1\u30a4\u30e9\u30fc\u3068\u591a\u304f\u306e\u88dc\u52a9\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001MSX\u3001Texas Instruments \u96fb\u5353\u306a\u3069\u3001\u4ed6\u306e\u591a\u304f\u306e Z80 \u30de\u30b7\u30f3\u3082\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002 \u6b21\u306b\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u3042\u308b z88dk \u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3\u306b\u95a2\u3059\u308b\u79c1\u306e\u8868\u9762\u7684\u306a\u98db\u884c\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u3001OOP \u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u5b9f\u88c5\u3057\u3001\u30c7\u30b6\u30a4\u30f3 \u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\u3002 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6a5f\u80fd z88dk \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30de\u30cb\u30e5\u30a2\u30eb\u306b\u5f93\u3063\u3066\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001Ubuntu \u30e6\u30fc\u30b6\u30fc\u5411\u3051\u306b\u3001\u6b21\u306e\u6a5f\u80fd\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Z80 \u7528\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u304c deb \u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u3089\u3092\u524a\u9664\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3 \u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u4e92\u63db\u6027\u304c\u306a\u3044\u305f\u3081\u3001z88dk \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 bin \u30d5\u30a9\u30eb\u30c0\u304b\u3089\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u3001\u304a\u305d\u3089\u304f\u4f55\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002 \/p> \u30cf\u30ed\u30fc\u30ef\u30fc\u30eb\u30c9<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/ja\/2019\/12\/14\/%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d0%b8%d0%b3%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-zx-spectrum-%d0%bd%d0%b0-c\/\">Continue reading <span class=\"screen-reader-text\">&#8220;C \u306b\u3088\u308b ZX Spectrum \u306e\u30b2\u30fc\u30e0\u958b\u767a&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49,81,61],"tags":[134,133],"class_list":["post-2396","post","type-post","status-publish","format-standard","hentry","category-blog","category-demos","category-techie","tag-spectrum","tag-z88dk","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"ja","enabled_languages":["en","ru","zh","de","fr","ja","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":false,"content":false,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/posts\/2396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/comments?post=2396"}],"version-history":[{"count":32,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/posts\/2396\/revisions"}],"predecessor-version":[{"id":3930,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/posts\/2396\/revisions\/3930"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/media?parent=2396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/categories?post=2396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/ja\/wp-json\/wp\/v2\/tags?post=2396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}