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.