{"id":930317,"date":"2023-02-08T02:13:31","date_gmt":"2023-02-08T01:13:31","guid":{"rendered":"https:\/\/blog.darkbyte.sk\/?p=930317"},"modified":"2026-04-16T14:13:08","modified_gmt":"2026-04-16T12:13:08","slug":"oqtadrive-zaujimavy-hardwarovy-emulator-sinclair-microdrive","status":"publish","type":"post","link":"https:\/\/blog.darkbyte.sk\/?p=930317","title":{"rendered":"Oqtadrive &#8211; zauj\u00edmav\u00fd hardwarov\u00fd emul\u00e1tor Sinclair Microdrive"},"content":{"rendered":"<p align=\"justify\">Napriek tomu, \u017ee u\u017e nejak\u00fd ten piatok vlastn\u00edm vDriveQL, zaujal ma \u010fal\u0161\u00ed emul\u00e1tor Microdrive &#8211; <a href=\"https:\/\/codeberg.org\/xelalexv\/oqtadrive\" rel=\"noopener\" target=\"_blank\">Oqtadrive<\/a>. Je to relat\u00edvne jednoduch\u00fd hardware postaven\u00fd na Arduine Nano a je zauj\u00edmav\u00fd t\u00fdm, \u017ee je oboj\u017eiveln\u00fd. D\u00e1 sa pou\u017e\u00edva\u0165 s QLkom, ale aj s IF1 a ZX Spectrom. Najjednoduch\u0161\u00ed variant sa ovl\u00e1da z po\u010d\u00edta\u010da cez USB k\u00e1bel, alebo si m\u00f4\u017eete postavi\u0165 zlo\u017eitej\u0161iu standalone verziu, ktor\u00e1 sa ovl\u00e1da cez Wifi, pohodlne pomocou webov\u00e9ho rozhrania. T\u00e1 sa mi zap\u00e1\u010dila a tak som si ju postavil. Toto je n\u00e1vod ako na to.<\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Oqtadrive ma zaujalo aj t\u00fdm, \u017ee je postaven\u00e9 z minima s\u00fa\u010diastok. Okrem hlavn\u00e9ho plo\u0161\u00e1ku potrebujete len Arduino Nano, Raspberry Pi Zero W, DC-DC prevodn\u00edk, level shifter, a nejak\u00e9 smetie ako odpory, di\u00f3dy a pinov\u00e9 li\u0161ty. Pozor, lacn\u00e9 je to len zdanlivo. RPi aj Arduino s\u00fa dnes za \u0161ialen\u00e9 ceny a ke\u010f k tomu prir\u00e1tate sumy za dosku, prevodn\u00edk, level shifter a nejak\u00fa microSD kartu, k\u013eudne sa dostanete na nejak\u00fdch 60-70 Eur. Ale mysl\u00edm, \u017ee to za to stoj\u00ed.<\/p>\n<p align=\"justify\">Hne\u010f na \u00favod upozor\u0148ujem, \u017ee Oqtadrive <em><strong>NIE JE<\/strong><\/em> kompatibliln\u00e9 s <a href=\"https:\/\/vdrivezx.com\/vmap\" rel=\"noopener\" target=\"_blank\">vMAP<\/a> a <a href=\"https:\/\/vdrivezx.com\/vdriveql\/\" rel=\"noopener\" target=\"_blank\">vDriveQL<\/a> od <a href=\"https:\/\/vdrivezx.com\/\" rel=\"noopener\" target=\"_blank\">vRetro Design<\/a>. Na <a href=\"https:\/\/oqtadrive.org\/\" rel=\"noopener\" target=\"_blank\">domovskej str\u00e1nke<\/a> to doteraz nie je uveden\u00e9 a na <a href=\"https:\/\/codeberg.org\/xelalexv\/oqtadrive\" rel=\"noopener\" target=\"_blank\">str\u00e1nke projektu<\/a> to autor doplnil, a\u017e ke\u010f som na to zalo\u017eil issue, lebo mapping Oqtadrive na mojom QLku s vMAPom sa chov\u00e1 podivne a na vine je pr\u00e1ve vMAP. Trocha sa k tomu vr\u00e1tim nesk\u00f4r. Ale po\u010fme u\u017e k samotnej stavbe.<\/p>\n<figure id=\"attachment_930361\" aria-describedby=\"caption-attachment-930361\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-300x300.jpg\" alt=\"Oqtadrive\" width=\"300\" height=\"300\" class=\"size-medium wp-image-930361\" srcset=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-300x300.jpg 300w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-1019x1024.jpg 1019w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-150x150.jpg 150w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-768x771.jpg 768w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644-1529x1536.jpg 1529w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1644.jpg 1580w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-930361\" class=\"wp-caption-text\">Osaden\u00fd plo\u0161\u00e1\u010dik<\/figcaption><\/figure>\n<p align=\"justify\">Ke\u010f\u017ee Raspbery Pi Zero W je dnes <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unobtainium\" rel=\"noopener\" target=\"_blank\">Unobtainium<\/a>, musel som sa prisp\u00f4sobi\u0165. Alternat\u00edvou odpor\u00fa\u010danou priamo autorom je <a href=\"https:\/\/wiki.banana-pi.org\/Banana_Pi_BPI-M2_ZERO\" rel=\"noopener\" target=\"_blank\">Banana Pi M2 Zero<\/a>, ktor\u00e9 pun\u00faka +\/- to ist\u00e9 ako RPi, ale na rozdiel od RPi sa e\u0161te d\u00e1 zohna\u0165. Aj mne sa to podarilo a dokonca som ho k\u00fapil tu na Slovensku a e\u0161te lacnej\u0161ie, ako sa d\u00e1 k\u00fapi\u0165 na Aliexpresse. Okrem level shiftera (ktor\u00fd mi dodal Ikon) som mal v\u0161etko ostatn\u00e9 v \u0161upl\u00edku, tak\u017ee poskladanie bolo ot\u00e1zkou pol hodiny. Nie je tam \u017eiaden z\u00e1drhe\u013e a osadzovac\u00ed pl\u00e1nik je zverejnen\u00fd na <a href=\"https:\/\/www.pcbway.com\/project\/shareproject\/Sinclair_ZX_Spectrum___QL_OqtaDrive_Standalone_v1_2b_PCB.html\" rel=\"noopener\" target=\"_blank\">PCBWAY<\/a>. Ja som si nakoniec neosadil Adafruit 1201 Motor, lebo m\u00e1 otravn\u00fd zvuk. \u010cakal som nie\u010do pr\u00edvetivej\u0161ie. Hotov\u00e9 Oqtadrive zatia\u013e ned\u00e1vajte do krabi\u010dky ak nejak\u00fa u\u017e m\u00e1te, lebo ho e\u0161te potrebujeme o\u017eivi\u0165.<\/p>\n<figure id=\"attachment_930362\" aria-describedby=\"caption-attachment-930362\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-300x272.jpg\" alt=\"Oqtadrive\" width=\"300\" height=\"272\" class=\"size-medium wp-image-930362\" srcset=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-300x272.jpg 300w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-1024x929.jpg 1024w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-768x697.jpg 768w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-1536x1393.jpg 1536w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1646-2048x1858.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-930362\" class=\"wp-caption-text\">Hlavn\u00e9 komponenty &#8211; level shifter, Arduino a Banana Pi M2 Zero<\/figcaption><\/figure>\n<p align=\"justify\">Ako prv\u00e9 si potrebujeme pripravi\u0165 SD kartu a k tomu je potrebn\u00fd image s opera\u010dn\u00fdm syst\u00e9mom. Origin\u00e1lny n\u00e1vod pon\u00faka predpripraven\u00fd image Armbianu, ktor\u00fd by sa po spusten\u00ed mal s\u00e1m skonfigurova\u0165, ale mne nefungoval. Ani po hodine sa ni\u010d nedialo. Pri pokuse prihl\u00e1si\u0165 sa do neho, aby som skontroloval \u010do sa deje, sa opera\u010dn\u00fd syst\u00e9m s\u00e1m od seba re\u0161tartoval, tak\u017ee som to nedok\u00e1zal opravi\u0165. Na\u0161\u0165astie je na str\u00e1nkach Oqtadrive zverejnen\u00fd aj cel\u00fd postup, tak\u017ee som \u0161iel pod\u013ea neho. Bohu\u017eia\u013e v \u0148om bola chyba a najprv mi Oqtadrive nefungovalo. Ale nahl\u00e1sil som to a autor to takmer obratom opravil, tak\u017ee aktu\u00e1lny <a href=\"https:\/\/codeberg.org\/xelalexv\/oqtadrive\/src\/branch\/master\/doc\/install.md\" rel=\"noopener\" target=\"_blank\">postup<\/a> <em>&#8220;&#8230;and the Hard Way&#8221;<\/em> z domovskej str\u00e1nky v\u00e1m vyprodukuje funkn\u010dn\u00e9 Oqtadrive. Ka\u017edop\u00e1dne som si to sp\u00edsal aj sem.<\/p>\n<figure id=\"attachment_930363\" aria-describedby=\"caption-attachment-930363\" style=\"width: 294px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647-294x300.jpg\" alt=\"Oqtadrive\" width=\"294\" height=\"300\" class=\"size-medium wp-image-930363\" srcset=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647-294x300.jpg 294w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647-1004x1024.jpg 1004w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647-768x784.jpg 768w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647-1505x1536.jpg 1505w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1647.jpg 1567w\" sizes=\"auto, (max-width: 294px) 100vw, 294px\" \/><\/a><figcaption id=\"caption-attachment-930363\" class=\"wp-caption-text\">V\u0161etko zacvakan\u00e9 do seba a osaden\u00e9 v spodnom dieli krabi\u010dky.<\/figcaption><\/figure>\n<p align=\"justify\">Tak\u017ee sa presu\u0148me k in\u0161tal\u00e1cii. Hotov\u00e9 Oqtadrive pripoj\u00edme ku QLku, alebo ZXS s IF1. Na \u00favod potrebujeme nejak\u00fd opera\u010dn\u00fd syst\u00e9m. Autor software Alexander Vollschwitz zvolil <a href=\"https:\/\/www.armbian.com\/\" rel=\"noopener\" target=\"_blank\">Armbian<\/a> a ja som nemal d\u00f4vod to meni\u0165. Len \u0161koda, \u017ee pre Banana Pi nie je ofici\u00e1lny build priamo od Armbianu (U\u017e je: <a href=\"https:\/\/www.armbian.com\/bananapi-m2-zero\/\" target=\"_blank\">tu<\/a>). M\u00f4\u017eete si ho v\u0161ak stiahnu\u0165 z <a href=\"https:\/\/wiki.banana-pi.org\/Banana_Pi_BPI-M2_ZERO#Armbian\" rel=\"noopener\" target=\"_blank\">domovskej str\u00e1nky Banana Pi<\/a>, alebo aj <a href=\"https:\/\/z00m.speccy.cz\/files\/Armbian_22.11.0-trunk_Bananapim2zero_bullseye_edge_6.0.9.img.xz\" rel=\"noopener\" target=\"_blank\">odo m\u0148a<\/a> (cca 400 MB), keby n\u00e1hodou domovsk\u00fd link vykapal. Image vyklopte na r\u00fdchlu microSD kartu, zalo\u017ete ju do Banana Pi, pripojte si kl\u00e1vesnicu (budete potrebova\u0165 <a href=\"https:\/\/www.alza.sk\/premiumcord-usb-a-female-micro-usb-female-d3783672.htm\" rel=\"noopener\" target=\"_blank\">OTG adapt\u00e9r<\/a>) a monitor cez miniHDMI<>HDMI k\u00e1bel. Zapnite QL \/ ZXS, nechajte Armbian na\u0161tartova\u0165 a prejdite \u00favodn\u00fdm nastaven\u00edm, ktor\u00e9 si s\u00e1m vyp\u00fdta. Je potrebn\u00e9 ho pripoji\u0165 k va\u0161ej WiFi, preto\u017ee nasleduj\u00faci in\u0161tala\u010dn\u00fd prosces vy\u017eaduje internet. Ako be\u017en\u00e9ho u\u017e\u00edvate\u013ea si nastavte username <strong>pi<\/strong> a heslo si dajte <strong>oqtadrive<\/strong>. Tak to odpor\u00fa\u010da p\u00f4vodn\u00fd n\u00e1vod. Ke\u010f sa v\u00e1m zobraz\u00ed prompt, aktualizujte opera\u010dn\u00fd syst\u00e9m pomocou pr\u00edkazov <strong>apt update<\/strong> a potom <strong>apt upgrade<\/strong>. <\/p>\n<p align=\"justify\">Potom treba doin\u0161talova\u0165 <em>gawk<\/em> a <em>strace<\/em> pomocou <strong>apt install gawk strace<\/strong>, a u\u017e\u00edvate\u013ea <em>pi<\/em> prida\u0165 do <em>sudoers<\/em> tak, aby pr\u00edkaz <strong>sudo<\/strong> nep\u00fdtal heslo. Pomocou pr\u00edkazu <strong>visudo<\/strong> dopl\u0148te na koniec konfigur\u00e1ku parameter <em>pi ALL=(ALL) NOPASSWD:ALL<\/em> a zmenu ulo\u017ete. Ako posledn\u00e1 prerekvizita je zapnutie s\u00e9riov\u00e9ho portu <em>uart3<\/em>, cez ktor\u00fd budeme komunikova\u0165 s Arduinom. To m\u00f4\u017eete urob\u00ed\u0165 cez konfigura\u010dn\u00fd n\u00e1stroj <strong>armbian-config<\/strong>, ale pod\u013ea m\u0148a je r\u00fdchlej\u0161ie manu\u00e1lne doplni\u0165 na koniec konfigur\u00e1ku <em>\/boot\/armbianEnv.txt<\/em> parameter <em>overlays=uart3<\/em>, lebo armbian-config rob\u00ed presne to ist\u00e9. Potom Banana Pi re\u0161tartujte a po re\u0161tarte sa prihl\u00e1ste pod nov\u00fdm u\u017e\u00edvate\u013eom <em>pi<\/em>. A teraz kone\u010dne m\u00f4\u017eeme prist\u00fapi\u0165 k in\u0161tal\u00e1cii obslu\u017en\u00e9ho software. Po\u010d\u00edta s t\u00fdm, \u017ee je umiestnen\u00fd v domovskom adres\u00e1ri u\u017e\u00edvate\u013ea <em>pi<\/em>, tak\u017ee sa pred in\u0161tal\u00e1ciou uistite, \u017ee ste v adres\u00e1ri <strong>\/home\/pi<\/strong>.<\/p>\n<p align=\"justify\">P\u00e1\u010di sa mi ako to Alexander vymyslel. Cel\u00fd proces in\u0161tal\u00e1cie sa obsluhuje pomocou jedin\u00e9ho <em>Makefile<\/em>, tak\u017ee si ho stiahneme:<br \/>\n<code>curl -fsSL https:\/\/codeberg.org\/xelalexv\/oqtadrive\/raw\/branch\/master\/hack\/Makefile -o Makefile<\/code><\/p>\n<p>A hne\u010f za t\u00fdm si vytvor\u00edme adres\u00e1r <em>oqtadrive<\/em> a do\u0148ho si stiahneme konfigura\u010dn\u00fd s\u00fabor:<br \/>\n<code>mkdir oqtadrive<\/code><br \/>\n<code>curl -fsSL https:\/\/codeberg.org\/xelalexv\/oqtadrive\/raw\/branch\/master\/hack\/unattended\/bananapi\/config.h -o oqtadrive\/config.h<\/code><\/p>\n<p align=\"justify\">A teraz u\u017e nastupuje Makefile. Cez neho si nain\u0161talujeme <em>oqtactl<\/em> bin\u00e1rku, web UI, toolkit pre Arduino <em>arduino-cli<\/em>, pomocou ktor\u00e9ho naflashujeme firmware do Arduina v Oqtadrive:<br \/>\n<code>make install<\/code><\/p>\n<p align=\"justify\">Utilita <em>avrdude<\/em> z bal\u00edka <em>arduino-cl<\/em>i za norm\u00e1lnych okolnost\u00ed komunikuje cez USB, my ale m\u00e1me Arduino pripojen\u00e9 cez GPIO a <em>uart3<\/em>, tak\u017ee mal\u00fdm patchom prin\u00fatime <em>avrdude<\/em>, aby komunikoval cez n\u00e1\u0161 <em>uart3<\/em>:<br \/>\n<code>make patch_avrdude<\/code><\/p>\n<p align=\"justify\">Teraz m\u00f4\u017eeme skompilova\u0165 firmware a naflashova\u0165 ho do Arduina. Ja m\u00e1m star\u0161ie Arduino Nano, tak\u017ee oproti <a href=\"https:\/\/codeberg.org\/xelalexv\/oqtadrive\/src\/branch\/master\/doc\/install_bananapi.md\" rel=\"noopener\" target=\"_blank\">p\u00f4vodn\u00e9mu n\u00e1vodu<\/a> je potrebn\u00e9 do pr\u00edkazu doplni\u0165 e\u0161te parameter <em>OLD_NANO=y<\/em>:<br \/>\n<code>PORT=\/dev\/ttyS3 BAUD_RATE=500000 OLD_NANO=y RESET_PIN=16 make flash<\/code><\/p>\n<p align=\"justify\">N\u00e1sledne potrebujeme zabezpe\u010di\u0165, aby sa slu\u017eba pre Oqtadrive sp\u00fa\u0161\u0165ala automaticky s ka\u017ed\u00fdm \u0161tartom opera\u010dn\u00e9ho syst\u00e9mu. Raspbian i Armbian pou\u017e\u00edvaj\u00fa systemd, tak\u017ee tu som na\u0161\u0165astie nemusel maturova\u0165 a opa\u0165 funguje \u0161tandardn\u00fd pr\u00edkaz z p\u00f4vodn\u00e9ho postupu:<br \/>\n<code>PORT=\/dev\/ttyS3 BAUD_RATE=500000 make service_on<\/code><\/p>\n<p align=\"justify\">M\u00f4\u017eete si skontrolova\u0165 \u010di slu\u017eba be\u017e\u00ed (a takto sa to kontroluje aj v pr\u00edpade, \u017ee v\u00e1m v bud\u00facnosti Oqtadrive za\u010dne haprova\u0165):<br \/>\n<code>systemctl status oqtadrive.service<\/code><\/p>\n<p align=\"justify\">A na z\u00e1ver in\u0161tal\u00e1cie si pop\u00ed\u0161eme e\u0161te jeden pr\u00edkaz. Ten teraz nepou\u017eijeme, lebo m\u00e1me aktu\u00e1lnu verziu v\u0161etk\u00e9ho, ale do bud\u00facna n\u00e1m bude sl\u00fa\u017ei\u0165 na aktualiz\u00e1ciu firmware i software. Jednoducho sa hocikedy za jazdy pripoj\u00edme cez ssh k Banana Pi a spust\u00edme ho:<br \/>\n<code>PORT=\/dev\/ttyS3 BAUD_RATE=500000 OLD_NANO=y RESET_PIN=16 make upgrade<\/code>.<\/p>\n<p align=\"justify\">Ak v\u00e1m v\u0161etko zbehlo bezchybne, mali by ste ma\u0165 Oqtadrive o\u017eiven\u00e9 a od tohto okamihu u\u017e nepotrebujete ma\u0165 pripojen\u00fd k nemu monitor a kl\u00e1vesnicu a m\u00f4\u017eete si ho zakrytova\u0165. Je k nemu <a href=\"https:\/\/www.thingiverse.com\/thing:4917845\" rel=\"noopener\" target=\"_blank\">krabi\u010dka<\/a>, ktor\u00fa si viete vytla\u010di\u0165 na 3D tla\u010diarni, alebo si ho m\u00f4\u017eete zabudova\u0165 aj do p\u00f4vodn\u00e9ho case od extern\u00e9ho microdrive.<\/p>\n<p align=\"justify\">A ako sa to cel\u00e9 pou\u017e\u00edva? Jednoducho idete cez browser na va\u0161om po\u010d\u00edta\u010di na adresu Oqtadrive slu\u017eby (zist\u00edte bu\u010f na routri, alebo si v nastaveniach Armbianu\/Banana PI pride\u013ete statick\u00fa IP adresu) <em><strong>http:\/\/ip.adresa.vaseho.Oqtadrive:8888<\/strong><\/em> a otvor\u00ed sa v\u00e1m webov\u00e9 rozhranie k Oqtadrive. Viete si v \u0148om nahr\u00e1va\u0165 MDV pre QL a MDR, TAP, Z80 a SNA s\u00fabory do hociktorej z \u00f4smich virtu\u00e1lnych microdrive. \u00c1no, vid\u00edte dobre &#8211; Oqtadrive si pre ZXS dok\u00e1\u017ee do MDR skonvertova\u0165 aj snapy a tapky. Pri tapk\u00e1ch s\u00fa samozrejme \u0161tandardn\u00e9 obmedzenia (len BASIC loader, kde treba upravi\u0165 pr\u00edkazy LOAD pre microdrive), ale snapy chodia bez \u00faprav a to je pre hr\u00e1\u010dov \u00fapln\u00e1 pecka. S\u00fabory samozrejme viete do virtu\u00e1lnych microdrive uploadova\u0165 priamo z web rozhrania z v\u00e1\u0161ho po\u010d\u00edta\u010da. No a v\u010faka tomu, \u017ee v\u010faka WiFi viete ma\u0165 k dispoz\u00edcii aj internet, Oqtadrive vie s\u0165ahova\u0165 aj s\u00fabory zo ZXDB. Vyzer\u00e1 to tak, \u017ee Alexander na tom akt\u00edvne pracuje, tak\u017ee pod\u013ea m\u0148a bud\u00fa mo\u017enosti e\u0161te prib\u00fada\u0165. Ke\u010f pri ZXS odmysl\u00edm t\u00fa stra\u0161ideln\u00fa syntax ovl\u00e1dac\u00edch BASICov\u00fdch pr\u00edkazov, pova\u017eujem to za v\u00fdborn\u00e9 modern\u00e9 zariadenie a pri QLku to je naozaj kvantov\u00fd skok v pou\u017e\u00edvan\u00ed. M\u00e1te na p\u00e1r klikov dostupn\u00e9 d\u00e1ta, programy, hry bez zbyto\u010dnej diskot\u00e9ky s SD \u010di CF kartami.<\/p>\n<figure id=\"attachment_930364\" aria-describedby=\"caption-attachment-930364\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-300x298.jpg\" alt=\"Oqtadrive\" width=\"300\" height=\"298\" class=\"size-medium wp-image-930364\" srcset=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-300x298.jpg 300w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-1024x1018.jpg 1024w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-150x150.jpg 150w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-768x764.jpg 768w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-1536x1528.jpg 1536w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1649-2048x2037.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-930364\" class=\"wp-caption-text\">Hotov\u00e1 zostava, u\u017e len zakrytova\u0165.<\/figcaption><\/figure>\n<p align=\"justify\">T\u00fdm sa v\u0161ak mo\u017enosti nekon\u010dia a v obmedzenej miere sa d\u00e1 Oqtadrive ovl\u00e1da\u0165 aj BASICov\u00fdmi pr\u00edkazmi priamo zo ZXS a QL! S\u00fabory si m\u00f4\u017eete uklada\u0165 aj lok\u00e1lne do repozit\u00e1ra priamo na SDkartu v BananaPI, napr\u00edklad do adres\u00e1ra <em>\/home\/pi\/repo<\/em>. Potom treba upravi\u0165 unit file <em>\/etc\/systemd\/system\/oqtadrive.service<\/em> tak, \u017ee za pr\u00edkaz <em>ExecStart=\/home\/pi\/oqtactl serve -d \/dev\/ttyS3 -b 500000<\/em> dop\u00ed\u0161ete e\u0161te &#8211;<em>r \/home\/pi\/repo<\/em>, tak\u017ee celkov\u00fd pr\u00edkaz bude vyzera\u0165 takto: <em>ExecStart=\/home\/pi\/oqtactl serve -d \/dev\/ttyS3 -b 500000 -r \/home\/pi\/repo<\/em>. Po najbli\u017e\u0161om \u0161tarte daemona m\u00e1te dostupn\u00fd tento lok\u00e1lny repozit\u00e1r pre pr\u00edpad, \u017ee ostanete bez WiFi. S\u00fabory z neho si potom nahr\u00e1vate priamo na ZXS, \u010di QL, cez pr\u00edkaz LOAD. Repozit\u00e1r si viete nap\u013a\u0148a\u0165 aj bez vyberania SD karty cez ssh a pr\u00edkaz <strong>scp<\/strong>. Ale nejdem sa tu o tom rozpisova\u0165, v\u0161etko je v <a href=\"https:\/\/codeberg.org\/xelalexv\/oqtadrive\/src\/branch\/master\/doc\/client.md\" rel=\"noopener\" target=\"_blank\">manu\u00e1li<\/a>.<\/p>\n<p align=\"justify\">Pre m\u0148a v\u0161ak dokon\u010denie Oqtadrive malo trpk\u00fa pr\u00edchu\u0165. Ako som spom\u00ednal v \u00favode, na str\u00e1nkach nekopmatibilita s vMAPom nebola uveden\u00e1. V QLku sa mi mapovanie Oqtadrive bije s vMAPom, tak\u017ee mi to robilo psie kusy. Nijak\u00fdm sp\u00f4sobom som sa k Oqtadrive nevedel dosta\u0165 cez MDV1_, MDV2_ a MDV3_. Nakoniec som to nejako rozchodil a s nastaven\u00edm <strong>VMAP 1<\/strong> m\u00e1m Oqtadrive pr\u00edstupn\u00e9 aspo\u0148 cez MDV4_ a\u017e MDV8_ tak\u017ee sa d\u00e1 vyu\u017ei\u0165 aspo\u0148 na pohodln\u00fd prenos d\u00e1t na CFkartu, ktor\u00fa m\u00e1m zastr\u010den\u00fa v <a href=\"http:\/\/oldmachinery.blogspot.com\/2017\/11\/sinclair-ql-tetroid-disk-interface.html\" rel=\"noopener\" target=\"_blank\">TDI<\/a>. \u0160achovan\u00edm s nastaven\u00edm vMAPu, \u010di s mapovan\u00edm v rozhran\u00ed Oqtadrive sa to dalo u\u017e len zhor\u0161i\u0165. Bohu\u017eia\u013e to nie je to, \u010do som si predstavoval. T\u0155\u0148ov\u00fa korunu tomu nasadilo e\u0161te aj moje IF1, ktor\u00e9 je asi nejako nakopnut\u00e9, preto\u017ee ZXS nedok\u00e1\u017ee z Oqtadrive ni\u010d pre\u010d\u00edta\u0165. V debug logu Oqtadrive je vidie\u0165, ako len cyklicky dookola sk\u00fa\u0161a \u010d\u00edta\u0165 v\u0161etky sektory. Sn\u00e1\u010f sa mi podar\u00ed to vysk\u00fa\u0161a\u0165 u Ikona s in\u00fdm IF1 a ak to p\u00f4jde, tak budem musie\u0165 zdiagnostikova\u0165 to moje. A ke\u010f\u017ee s QLkom to chod\u00ed, probl\u00e9m je najsk\u00f4r v mojom IF1.<\/p>\n<figure id=\"attachment_930373\" aria-describedby=\"caption-attachment-930373\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650-300x272.jpg\" alt=\"Oqtadrive\" width=\"300\" height=\"272\" class=\"size-medium wp-image-930373\" srcset=\"https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650-300x272.jpg 300w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650-1024x929.jpg 1024w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650-768x697.jpg 768w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650-1536x1393.jpg 1536w, https:\/\/blog.darkbyte.sk\/wp-content\/uploads\/2023\/02\/IMG_1650.jpg 1903w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-930373\" class=\"wp-caption-text\">Hotov\u00e9 Oqtadrive.<\/figcaption><\/figure>\n<p align=\"justify\">\u010co doda\u0165 na z\u00e1ver? Oqtadrive sa mi p\u00e1\u010di. \u013dahko sa d\u00e1 postavi\u0165, \u013eahko sa ovl\u00e1da a nepotrebujete \u017eiadne prenosite\u013en\u00e9 m\u00e9dium na to, aby ste dostali do QL \u010di ZXS programy, hry a d\u00e1ta. Pri ZXS si ho v\u010faka otrasn\u00fdm BASICovsk\u00fdm pr\u00edkazom viem predstavi\u0165 len ako zauj\u00edmavos\u0165, \u010di z nad\u0161enia zo zauj\u00edmav\u00e9ho hardware. Ale pri QLku m\u00e1 v\u00fdborn\u00e9 vyu\u017eitie. Ak e\u0161te nem\u00e1te QL-SD, \u010di vDriveQL a zva\u017eujete nejak\u00e9 modern\u00e9 z\u00e1znamov\u00e9 zariadenie, Oqtadrive m\u00f4\u017eem len odporu\u010di\u0165. Vyjde lacnej\u0161ie ako vMAP+vDriveQL a m\u00e1 pod\u013ea m\u0148a lep\u0161ie mo\u017enosti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Napriek tomu, \u017ee u\u017e nejak\u00fd ten piatok vlastn\u00edm vDriveQL, zaujal ma \u010fal\u0161\u00ed emul\u00e1tor Microdrive &#8211; Oqtadrive. Je to relat\u00edvne jednoduch\u00fd hardware postaven\u00fd na Arduine Nano a je zauj\u00edmav\u00fd t\u00fdm, \u017ee je oboj\u017eiveln\u00fd. D\u00e1 sa pou\u017e\u00edva\u0165 s QLkom, ale aj s IF1 a ZX Spectrom. Najjednoduch\u0161\u00ed variant sa ovl\u00e1da z po\u010d\u00edta\u010da&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,22],"tags":[],"class_list":["post-930317","post","type-post","status-publish","format-standard","hentry","category-ql","category-zx-spectrum"],"_links":{"self":[{"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/posts\/930317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=930317"}],"version-history":[{"count":56,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/posts\/930317\/revisions"}],"predecessor-version":[{"id":930669,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=\/wp\/v2\/posts\/930317\/revisions\/930669"}],"wp:attachment":[{"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.darkbyte.sk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}