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:\>