Další komunikační rozhraní je USARTShell, který slouží ke komunikaci s Unicard pomocí sériové linky RS-232 emulované přes miniUSB konektor. Komunikační kanál využívající miniUSB konektor je schopný pracovat ve dvou režimech:
Nastavení režimu komunikace se řídí pomocí dalšího rozhraní MZFREPO nebo jedním z CFG souborů. Přesný popis CFG souborů včetně toho pro nastavení režimu práce miniUSB konektoru je zde Emulované periferie.
Nejdříve stáhneme a nainstalujeme ovladač virtuálního portu STM32 Virtual COM port driver verze 1.3.1. Podle typu operačního systému spustíme buď VCP_V1.3.1_Setup.exe nebo VCP_V1.3.1_Setup_x64.exe.
Poslední verze ovladačů nefunguje. Pro správnou funkci je proto nezbytné nainstalovat starší verzi ovladačů 1.3.1
Pro komunikaci s rozhraním USARTShell slouží program UniUSARTShell spouštěný z příkazového řádku. Pokud spustíme program bez parametrů, vypíše nápovědu - seznam všech dostupných příkazů pro komunikaci s USARTShellem.
c:\>UniUSARTShell Unicard USART shell PC build 2018-08-04.21 Usage: UniUSARTshell <device> <command> [<param1>] [<param2>] Available commands are: date, remount, filelist, readdir, mkdir, unlink, open, new, read, boot, state, laninfo, rev, gdg. c:\>
Jako <device> je třeba zadat výše uvedeným způsobem nainstalovaný virtuální COM port (např. COM11). Podporované příkazy <command> jsou:
Provede reset počítače.
c:\>UniUSARTShell COM11 boot Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending BOOT... BOOT c:\>
Zobrazí MZ_ID, verzi a subverzi aktuálního firmware, jak jsou uvedené v hlavičce firmware viz. kapitola Popis hlavičky firmware.
MZ-800
c:\>UniUSARTShell COM11 rev Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REV... REV OK:REV MZ800 v0.18 c:\>
MZ-1500
c:\>UniUSARTShell COM11 rev Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REV... REV OK:REV MZ1500 v0.18 c:\>
Zobrazí obsah display mode registru.
MZ-800
c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=1, MZ_graphic_mode=6 c:\>
MZ-800 v módu MZ-700
c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=0, MZ_graphic_mode=8 c:\>
MZ-1500
c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=0, MZ_graphic_mode=8 c:\>
První číslo udává zachycená data z adresové sběrnice - v příkladu (002C), druhé číslo data z datové sběrnice (3A). IN a OUT jsou obrazy interních registrů ARM procesoru v Unicard.
MZ-800
c:\>UniUSARTShell COM11 state Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending STATE... STATE OK:STATE (002C)=3A, IN=FA, OUT=0D c:\>
MZ-1500
c:\>UniUSARTShell COM11 state Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending STATE... STATE OK:STATE (332A)=3A, IN=52, OUT=0D c:\>
Vypíše informace o aktuálním nastavení parametrů pro konfiguraci sítě.
bez připojeného kabelu
c:\>UniUSARTShell COM11 laninfo Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending LANINFO... LANINFO KSZ8031: OK PHY_ID: 00221560 LINK: DOWN HWADDR: 00-1C-EE-1A-04-6F IPCFG: STATIC IPADDR: 192.168.1.111 NETMASK: 255.255.255.0 GATEWAY: 192.168.1.20 OK:LANINFO_DONE c:\>
s připojeným kabelem
c:\>UniUSARTShell COM11 laninfo Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending LANINFO... LANINFO KSZ8031: OK PHY_ID: 00221560 LINK: UP HWADDR: 00-1C-EE-1A-04-6F IPCFG: STATIC IPADDR: 192.168.1.111 NETMASK: 255.255.255.0 GATEWAY: 192.168.1.20 OK:LANINFO_DONE c:\>
Vytvoří adresář <path> a zobrazí výsledek operace:
neexistující adresář jako parametr
c:\>UniUSARTShell COM11 mkdir \unicard\TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending MKDIR... MKDIR \unicard\TESTMKDIR OK:MKDIR \unicard\TESTMKDIR c:\>
existující adresář jako parametr
c:\>UniUSARTShell COM11 mkdir \unicard\TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending MKDIR... MKDIR \unicard\TESTMKDIR ERR:MKDIR \unicard\TESTMKDIR c:\>
Smaže soubor nebo adresář <filepath> a zobrazí výsledek operace:
existující adresář jako parametr
c:\>UniUSARTShell COM11 unlink /unicard/TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending UNLINK... UNLINK /unicard/TESTMKDIR OK:UNLINK /unicard/TESTMKDIR c:\>
neexistující adresář jako parametr
c:\>UniUSARTShell COM11 unlink /unicard/TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending UNLINK... UNLINK /unicard/TESTMKDIR ERR:UNLINK /unicard/TESTMKDIR c:\>
Odpojí příslušnou FD<0..3> ([A]:..[D]:) mechaniku a zavolá remount, který se provede standardně podle obsahu CFG souboru /unicard/fd<0..3>.cfg.
pokus o REMOUNT FD0 ([A]:) mechaniky bez konfiguračního souboru fd0.cfg
c:\>UniUSARTShell COM11 remount 0 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REMOUNT... REMOUNT 0 ERR:REMOUNT 0 c:\>
nakopírování konfiguračního souboru fd0.cfg s odkazem na obraz diskety Lemmings.dsk na Unicard do adresáře \unicard\
c:\>UniUSARTShell COM11 new fd0.cfg \unicard\fd0.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW \unicard\fd0.cfg OK:NEW \unicard\fd0.cfg Sending FSIZE: 0x0000000e OK:SIZE 0x0000000e Sending Data. OK:CLOSE 0xd2b7a6fb ************************* * Size: 14 B * * Time: 0.10 s * * Speed: 137.25 Bps * ************************* c:\>
REMOUNT FD0 ([A]:) mechaniky na základě nového konfiguračního souboru fd0.cfg
c:\>UniUSARTShell COM11 remount 0 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REMOUNT... REMOUNT 0 OK:REMOUNT 0 c:\>
Přenese soubor <src_file> (název souboru může obsahovat cestu) z SD karty v Unicard na PC do souboru <dst_file> (název souboru může obsahovat cestu). Otevře soubor na SD kartě pro čtení, pošle v binárním tvaru jako DWORD jeho velikost a za velikostí obsah souboru a výsledek operace:
načtení souboru
c:\>UniUSARTShell COM11 read \unicard\mzfloader.cfg mzfloader.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Read... READ \unicard\mzfloader.cfg OK:READ \unicard\mzfloader.cfg Receiving FSIZE: 0x00000015 Receiving Data OK:CLOSE 0x0311000b ************************* * Size: 21 B * * Time: 0.00 s * * Speed: 1.#J Bps * ************************* c:\>
chyba při čtení souboru
c:\>UniUSARTShell COM11 read qd.cfg qd.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Read... READ qd.cfg Error USARTshell->READ: ERR:READ qd.cfg c:\>
Přenese soubor <src_file> (názvy souborů mohou obsahovat cestu) z PC na SD kartu v Unicard <dst_file> - po úspěšném otevření nového souboru pro zápis <dst_file> přejde vstup USARTShellu do binárního režimu, ve kterém očekává jako DWORD velikost souboru a za velikostí jeho obsah. Po ukončení činnosti oznámí výsledek operace:
Příkaz NEW lze použít pouze pro založení nového souboru, v případe pokusu o přepsání již existujícího souboru zahlásí chybu.
soubor byl úspěšně přenesen
c:\>UniUSARTShell COM11 new Flappy_A.mzq Flappy_A.mzq Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW Flappy_A.mzq OK:NEW Flappy_A.mzq Sending FSIZE: 0x0000f01f OK:SIZE 0x0000f01f Sending Data.................................................................... ..................................................... OK:CLOSE 0xc7138ef3 ************************* * Size: 61471 B * * Time: 12.33 s * * Speed: 4987.10 Bps * ************************* c:\>
pokus o přepsání již existujícího souboru
c:\>UniUSARTShell COM11 new unicard800.app unicard.app Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW unicard.app Error USARTshell->OPEN/NEW: ERR:NEW unicard.app c:\>
pokus o přenos neexistujícího souboru
c:\>UniUSARTShell COM11 new CosmicCruiser3.mzt CosmicCruiser3.mzt Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Could not open src file: No such file or directory c:\>
Příkaz funguje stejně, jako příkaz NEW s tím rozdílem, že přenese soubor <src_file> i pokud cílový soubor <dst_file> existuje a přepíše jeho obsah. Po ukončení činnosti oznámí výsledek operace:
c:\>UniUSARTShell COM11 open mgr1500.mzf \unicard\mgr1500.mzf Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Open... OPEN \unicard\mgr1500.mzf OK:OPEN \unicard\mgr1500.mzf Sending FSIZE: 0x00001be2 OK:SIZE 0x00001be2 Sending Data.............. OK:CLOSE 0xb682acd8 ************************* * Size: 7138 B * * Time: 1.45 s * * Speed: 4936.38 Bps * ************************* c:\>
Vypíše obsah adresáře <path>, pokud je spuštěný bez parametru <path>, dosadí si za něj „\“ (root SD karty) a zobrazí výsledek operace:
bez parametru
c:\>UniUSARTShell COM11 filelist Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \ OK:FILELIST \ TESTMKDIR/ unicard/ mgr800.mzf 8462 unicard.app 190720 OK:FILELIST_DONE c:\>
existující adresář jako parametr
c:\>UniUSARTShell COM11 filelist \unicard Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \unicard OK:FILELIST \unicard mzfloader.cfg 21 QDisk-BASIC800.mzq 61471 mgr800.mzf 8462 ramdisc_sromloader.mzr 1048576 ramdisc1.mzr 1048576 mzfloader1.mzq 52868 qd.cfg 31 ramdisc.cfg 21 network.cfg 41 mz1r23.rom 131072 mz1r24.rom 262144 READDIRTEST1/ READDIRTEST2/ READDIRTEST3/ OK:FILELIST_DONE c:\>
neexistující adresář jako parametr
c:\>UniUSARTShell COM11 filelist wrongdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST wrongdir Error USARTshell->FILELIST: ERR:FILELIST wrongdir c:\>
bez parametru (root) s chybou čtení
c:\>UniUSARTShell COM11 filelist Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \ OK:FILELIST \ TESTMKDIR/ Error USARTshell->FILELIST1: ERR:READDIR c:\>
Vypíše obsah adresáře <path> v rozšířeném formátu. Pokud je spuštěný bez parametru <path>, dosadí si za něj „\“ (root SD karty) a zobrazí výsledek operace:
bez parametru
c:\>UniUSARTShell COM11 readdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \ OK:READDIR \ [DIR] TESTMKDIR 01-01-2017 00:00:00 [DIR] unicard 11-13-2017 21:28:26 [ARC] mgr800.mzf 8.26 kB 11-02-2018 12:42:38 [ARC] unicard.app 122.25 kB 29-15-2017 22:11:08 OK:READDIR_DONE c:\>
existující adresář jako parametr
c:\>UniUSARTShell COM11 readdir \unicard Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \unicard OK:READDIR \unicard [ARC] mzfloader.cfg 21 B 11-13-2017 21:30:10 [ARC] QDisk-BASIC800.mzq 4096.00 MB 04-01-2018 17:01:02 [ARC] mgr800.mzf 8.26 kB 11-02-2018 13:42:38 [ARC] ramdisc_sromloader.mzr 1.00 MB 27-08-2017 00:58:28 [ARC] ramdisc1.mzr 1.00 MB 27-08-2017 00:58:28 [ARC] mzfloader1.mzq 4095.99 MB 24-14-2016 23:39:16 [ARC] qd.cfg 31 B 13-13-2017 10:09:26 [ARC] ramdisc.cfg 21 B 13-13-2017 10:10:02 [ARC] network.cfg 41 B 18-15-2017 22:19:22 [ARC] mz1r23.rom 128.00 kB 30-04-2014 15:36:34 [ARC] mz1r24.rom 256.00 kB 09-02-2003 15:26:56 [DIR] READDIRTEST1 01-01-2017 00:00:00 [DIR] READDIRTEST2 01-01-2017 00:00:00 [DIR] READDIRTEST3 01-01-2017 00:00:00 OK:READDIR_DONE c:\>
neexistující adresář jako parametr
c:\>UniUSARTShell COM11 readdir wrongdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR wrongdir Error USARTshell->READDIR: ERR:READDIR wrongdir c:\>
bez parametru (root) s chybou čtení
c:\>UniUSARTShell COM11 readdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \ OK:READDIR \ [DIR] TESTMKDIR 01-01-2017 00:00:00 Error USARTshell->FILELIST1: ERR:READDIR c:\>
Pokud se spustí bez parametru, vypíše aktuální datum a čas nastavený v Unicard. Při spuštění s parametrem ve tvaru <rrrr-mm-dd hh:mm:ss> nastaví v Unicard datum a čas na uvedené hodnoty. Při zadání parametru v nesprávném tvaru se vypíše chyba se zobrazením správného formátu parametru.
bez parametru
c:\>UniUSARTShell COM11 date Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending DATE... DATE OK:DATE 2018-08-03 13:48:51 c:\>
správný tvar parametru
c:\>UniUSARTShell COM11 date 2018-08-03 13:47:00 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending DATE... DATE 2018-08-03 13:47:00 OK:DATE 2018-08-03 13:47:00 c:\>
chybný tvar parametru
c:\>UniUSARTShell COM11 date wrongdate Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Error, usage: USARTshell <device> date USARTshell <device> date YYYY-MM-DD HH:MM:SS c:\>