Abych jen „nehardwarařil“, tak jsem se chvíli věnoval i softwaru. Připravil jsem utility pro Sharp Unikartu a RRD pod CP/M. Prográmek umí pracovat s RTC Unikarty a hodinami CP/M, umí uložit a načíst RAMDisk na/z SD karty Unikarty a umí kopírovat soubory mezi CP/M a SD kartou.
Program se pod CP/M spouští pomocí příkazu UNIUTIL (nebo UU, podle toho, jak ho máte přejmenovaný) a jeho funkce se řídí parametry. Samotný program bez parametrů vypíše stručnou nápovědu.
UNIUTIL /GETRTCTIME – zobrazí RTC čas v Unikartě
UNIUTIL /GRTR – zobrazuje RTC čas z unikarty do zblbnutí, resp. stisknutí klávesy (používal jsem pro testování a porovnávání se CP/M časem)
UNIUTIL /SETRTCTIME HH:MM:SS – nastaví RTC v Unikartě, nenastaví čas v CP/M, na to je potřeba pak ještě použít /SETCPMTIME
UNIUTIL /SETCPMTIME – nastaví čas v CP/M podle RTC Unikarty (tohle je dobré dát do AUTOEXEC.SUB)
UNIUTIL /SAVERD page(0-1) bank(0-16) size(0-16) [filename] – uloží size stránek o velikosti 64 kB z RAMDisku na SD kartu počínaje zadanou stránkou a bankou. Pro uložení celého RRD je potřeba spustit 2x, jedno spuštění uloží max. 1024 kB.
Např. pro uložení CP/M RAM disku 1024 kB do rootu SD karty použijte příkaz
UNIUTIL /SAVERD 0 0 16 /rd.bin
UNIUTIL /LOADRD page(0-1) bank(0-16) size(0-16) [filename] – načte size stránek o velikosti 64 kB z SD karty do RAMDisku počínaje zadanou stránkou a bankou. Pro načtení celého RRD je potřeba spustit 2x, jedno spuštění načte max. 1024 kB.
Např. pro načtení CP/M RAM disku 1024 kB z rootu SD karty použijte příkaz
UNIUTIL /LOADRD 0 0 16 /rd.bin
Před přepsáním RAMDisku si program vyžádá souhlas zadáním ‚Yes‘.
UNIUTIL /FILETOSD [filename|ASK] – okopíruje soubor ze CP/M na SD kartu
UNIUTIL /FILEFROMSD [filename|ASK] – okopíruje soubor ze SD karty do CP/M
Pokud uvedete jméno souboru je tento soubor kopírován do/z rootu SD karty, pokud uvedete ASK, program se zeptá na jméno zdrojového i cílového souboru.
Např. pro uložení souboru UU.PAS na SD kartu použijte příkaz:
UNIUTIL /FILETOSD UU.PAS
Program jsem testoval sám na sobě, ale je vysoce pravděpodobné, že obsahuje chyby, proto ho používejte obezřetně. Program je napsaný v Turbo Pascalu 3.0 a můžete si stáhnout i zdrojáky. Chyby na které narazím nebo které nahlásíte určitě opravím. Program budu postupně rozšiřovat o další funkce. To stejné se týká i optimalizací. Program je napsaný „aby to jelo“ a na optimalizacích chce ještě pořádný kus práce. Některé funkce jedou po bytu a jsou proto prozatím docela pomalé.
UNIUTIL.COM – spustitelný program pro CP/M
UNIUTIL_SRC – zdrojové kódy
UNIUTIL_DSK – zdrojové kódy i spustitelný program na CP/M disketě 720 kB
Koukam, ze jsi skutecny UNIVERZAL! Dokonce pises i prehledne pascalovske zdrojaky. V SetCPMTime bych misto real asi pouzil LongInt a DIV s MOD. Jestli to neni blbost.
Tomu kodu se moc nediv, pouzil jsem, co mi prislo zrovna vhodne. Programoval jsem naposledy seriozne nekdy pred 20 lety. Od te doby tak po ruznu vzdycky na neco sahnu a vzdycky se to musim znovu ucit
Jo, promiň, koukám, že jsem neodpověděl na ten LongInt. Bohužel TurboPascal 3.0 tento typ nemá. Dalo by se to udělat jinak a pohrát si stím, ta cesta přes Real je fakt prasárna, ale bylo to nejrychlejší a nejjednodušší, co mě napadlo.