Služební programy systému CP/M ******************************** Obecně platí, že se programy startují z implicitně nastave- né mechaniky ( prompt A> oznamuje, že je implicitně nastavená mechanika A: ). Nachází-li se však program na jiné mechanice, je potřeba její jméno uvést před jménem programu. Například: B>PIP - spustí program PIP.COM z diskety v mechanice B: B>A:PIP - spustí program PIP.COM z diskety v mechanice A: Použité zkratky mají tento význam: filename - jméno souboru ( bez přípony ) .typ - přípona souboru filespec - úplná specifikace souboru ( jméno.typ ) inputfile - vstupní soubor outputfile - výstupní soubor listfile - výstupní soubor obsahující protokol o překladu [param] - údaj v hranatých závorkách je nepovinný EOLN - označuje posloupnost znaků CR CHR(13) a LF CHR(10) EOF - označuje znak konce textového souboru CHR(26) - CTRL/Z ^Z - je míněno zadání znaku CTRL/Z PIP.COM ========= Peripherial Interchange Program. Univerzální kopírovací program. Umožňuje kopírovat soubory na souborově i znakově orientovaná zařízení. Syntaxe příkazu: PIP [dev:][outputfile]=[dev:][inputfile][[,][dev:][inputfile]] nebo jen PIP poté se objeví hvězdička a lze pokračovat [dev:][outputfile]=[dev:][inputfile][[,][dev:][inputfile]] a poté se pokračuje opět hvězdičkou. Příkaz se ukončí zadáním CTRL/C nebo RETURN. Za každou specifikací vstupního souboru lze uvést též přepínače. Ty se zadávají do hranatých závorek. Tvar příkazu s přepínači ( hranaté závorky jsou platné ): PIP kam=odkud[přepínače],odkud[přepínače] Přepínače jsou jednotlivé znaky, které lze psát bezprostředně za sebou nebo je oddělovat mezerami. Význam přepínačů: B - čte spojitě do paměti, dokud nenačte znak CTRL/S Dn - čte od EOLN n znaků, zbytek znaků až po EOLN ignoruje E - zobrazuje na konzoli kopírovaná data F - ingnoruje znak FF Gn - čten bude soubor z uživatele USER n H - kontrola souboru, obsahuje-li platný intel HEX formát I - v HEX souboru vynechá záznamy ":00" L - převádí velké znaky na malé N - čísluje řádky od 1 po 1, před číslem jsou místo nul mezery N2 - čísluje řádky od 1 po 1, za číslem není dvojtečka O - ignoruje znak EOF Pn - vkládá znak FF před první a každý n-tý řádek ( default 60 ) Qřetězec^Z - ukončí kopírování při nalezení řetězce Sřetězec^Z - začne kopírovat až při nalezení řetězce R - povolí kopírování souboru s příznakem SYS Tn - místo znaku TAB doplní mezery do n-tého sloupce U - převádí malé znaky na velké V - kopírování s následnou kontrolou W - umožní přepsat soubor s příznakem R/O X - vypne kontrolu na platné ASCII znaky Z - nuluje u všech přenášených znaků nejvyšší bit příklady: PIP LST:=filespec[N T8 P60] je stejné jako PIP PRN:=filespec PIP A:=B:filespec - kopíruje soubor z disku B na disk A PIP *.BAK=filename.typ - vytvoří záložní kopii PIP PUN:=NUL:,filespec,NUL: -doplní 40 prázdných znaků před a za PIP filespec=RDR: - přečte do souboru data ze snímače PIP filespec=file1,file2,file3 - spojí textové soubory PIP filename=file1[X],file2[X] - spojí netextové soubory PIP A:=B:*.*[G2] - zkopíruje soubory od 2 uživatele k aktuálnímu PIP PUN:=EOF: - vyděruje EOF STAT.COM ========== STATus program pro zobrazování informací o konfiguraci sys- tému, o discích a o souborech na discích. Syntaxe příkazu: STAT zobrazí volnou kapacitu aktivních disků STAT d: zobrazí volnou kapacitu disku d STAT filespec ( lze i * a ? ) zobrazí informace o souborech, které splňují specifikaci jména a typu STAT filespec $S zobrazí informace o zadaném souboru, včetně počtu alokovaných recordů STAT filespec $param nastaví příznaky souboru podle param: R/O - chráněn před zápisem a smazáním R/W - opak R/O SYS - nelze kopírovat a není zobrazen při DIR DIR - opak SYS STAT d:=R/O nastaví disk jako R/O STAT log:=fyz: přiřadí logickému zařízení zařízení fyzické STAT DEV: ukáže momentální přiřazení fyzických zařízení zařízením logickým STAT VAL: poskytne informaci o platné syntaxi příkazu STAT [d:]DSK: zobrazí charakteristiky implicitního nebo uvedeného disku STAT USR: zobrazí informaci o tom, kteří uživatelé mají na disku soubory a který uživatel je nyní nastaven SUBMIT.COM, XSUB.COM ====================== Programy pro zpracování dávek. Dávkou je míněna určitá po- sloupnost příkazů CP/M. Používání dávkového zpracování příkazů je výhodné, zejména usnadňuje zadávání komplikovaných a často používaných příkazů. Program SUBMIT umožňuje zpracovat dávku předem připravených příkazů uloženou v souboru filename.SUB. Dávka může obsahovat záměnné položky, které se značí $0 až $9. V okamžiku zahájení činnosti programu SUBMIT jsou tyto položky nahrazeny skutečnými parametry, které byly uvedeny za příkazem. Program SUBMIT vytvoří na implicitním disku z dávkového souboru soubor $$$.SUB, který obsahuje příkazy ze souboru filename.SUB po substituci odpovídajících parametrů. Pokud je potřeba během vykonávání dávky zadávat i vstupní údaje pro programy ( napří- klad pro program PIP v režimu * ), musí být jako první příkaz dávky uveden program XSUB. Tento zajistí změnu systémové funkce čtení řádku z konzole ( služba BDOS č. 10 ) a přesměruje ji na soubor $$$.SUB. Dávkový soubor nesmí obsahovat prázdný řádek. Chceme-li použít znak $ ve dávkovém souboru, musí být zapsán ja- ko $$. Chceme-li použít řídící znaky CTRL, zapíšeme je jako po- sloupnost znaků "^" a "malé písmeno", například ^z. Poslední příkaz dávky může opět obsahovat příkaz SUBMIT, čímž je umožněno řetězení dávkových programů. Stiskem klávesy při přechodu na no- vý příkaz dávky je zpracování dávky ukončeno. Odstartování dávky má tvar: SUBMIT [d:]filename [param1[ param2[ ... paramN]]] Položka $1 v souboru filename.SUB je nahrazena textem param1, položka $2 je nahrazena textem param2 a tak dále. Položka $0 je nahrazena parametrem filename. Příklady: Soubor - COMPOSE.SUB - obsahuje: - a startuje se: PIP TEXT.TXT=PART1.TXT,PART2.TXT SUBMIT COMPOSE - ASSEMBLY.SUB EDT $1.ASM SUBMIT ASSEMBLY jméno ASM $1 PIP CON:=$1.PRN ERA $1.PRN LOAD $1 DDT $1.COM SUBMIT $0 $1 - COPY.SUB XSUB SUBMIT COPY d1 d2 PIP CON:=$1:MESAGE.TXT $2:=$1:STAT.COM[R] $2:=$1:PIP.COM[R] $2:=$1:SUBMIT.COM[R] $2:=$1:XSUB.COM[R] $2:=$1:MESAGE.TXT[R] ^c DDT.COM ========= Dynamic Debugging Tool je program pro přímé interaktivní ladění programů ve strojovém kódu I8080. Na příkazové řádce může být jako první parametr uvedeno jméno souboru, který má být načten do paměti spolu s DDT. Příkazy mají obecně tvar: příkazadresa1,adresa2,adresa3 např. ve významu odkud,kam,čím A - zadávání instrukcí I8080 D - dump paměti F - plnění paměti kódem G - start programu od adresa1 nebo PC, RET na adresa2 a adresa3 H - HEX aritmetika ( + a - ) I - ( Ifilename.typ ) nastavení specifikace souboru pro načtení L - výpis disassemblovaného programu M - přesun dat v paměti R - čtení souboru nastaveného příkazem I na 0100H+adresa1 S - změna obsahu paměti T - ( Tpočet_instrukcí ) trasování po instrukcích od PC U - stejné jako T, ale s výpisem registrů až na konci X - výpis a změna obsahu registrů POWER.COM =========== Program Power je programová nadstavba systému umožňující velmi rychle a spolehlivě pracovat nejenom s obsahem diskety, ale i s celou pamětí počítače. Nahrazuje všechny zabudované funkce operačního systému CP/M. Velkým množstvím příkazů se sta- vá mocným pomocníkem systémového programátora. Přehled příkazů a jejich parametrů: ^C ( CTRL/C ) přijmutí diskety DIR zobrazí direktorář disku setříděný podle abcedy REN přejmenuje soubor ERA smaže soubor TYPE zobrazí obsah souboru USER nastaví číslo uživatele COPY kopíruje soubory SIZE zobrazí velikost souboru STAT zobrazí zabranou/volnou/celkovou kapacitu disku CHECK vypočítá check sum - kontrolní součet souboru SET zobrazí nastavené bity atributu ochran RECLAIM obnoví smazané soubory SETSYS nastaví u souboru atribut SYS SETDIR nastaví u souboru atribut DIR SETRO nastaví u souboru atribut R/O SETWR nastaví u souboru atribut R/W DISK vypíše informace o organizaci dat na disku GROUP zobrazí obsazení alokačních bloků TEST zjištění kontrolního součtu disku a test disku LOG zobrazí informace o nastavení programu POWER XUSER umožňuje pracovat na více uživatelích najednou TYPEX HEX a ASCII dump souboru TYPEA ASCII dump souboru TYPEH HEX dump souboru SPEED n - rychlost tisku znaků, 0 - normál, 9 - nejpomaleji SAVE jméno odkud délka - zapíše obsah paměti do souboru LOAD jméno adresa_kam - načte soubor do paměti DS adresa - umožňuje měnit obsah paměti DUMP rozsah - HEX a ASCII dump paměti DUMPX rozsah - HEX a ASCII dump paměti DUMPA rozsah - ASCII dump paměti DUMPH rozsah - HEX dump paměti MOVE adresa_od adresa_do adresa_kam - přesun dat v paměti FILL adresa_od adresa_do kód_čím - zaplní paměť CM adresa_od adresa_do adresa_od - porovná paměťové oblasti SEARCH adresa_od adresa_do řetězec_bajtů - hledá v paměti JP adresa - spustí program s návratem do CP/M EX adresa - spustí program s návratem do POWER GO filespec adresa řetězec - zavede program do paměti a spustí READ stopa sektor adresa_kam počet_sektorů - načte do paměti sektory z diskety WRITE stopa sektor adresa_od počet_sektorů - zapíše obsah paměti do sektorů na disketě READGR alokační_blok adresa_kam počet_bloků - načte alokační bloky z diskety do paměti WRITEGR alokační_blok adresa_od počet_bloků - zapíše obsah paměti do alokačních bloků na disketě UR1 - provede instrukci CALL 0140H UR2 - provede instrukci CALL 0148H UR3 - provede instrukci CALL 0150H UR4 - provede instrukci CALL 0158H SORT n - ( 0 až 4 ) určuje způsob setřídění výpisu příkazu DIR RESET dev: - přijmutí diskety, stejné jako CTRL/C PASS heslo - ? EXIT - odchod do CP/M parametr rozsah může mít tvar: adresa_od adresa_do adresa_od,počet_bajtů ( neuvedený počet=128 ) adresa_od,, ( od adresy do konce paměti ) Podrobnější informace je možné si přečíst v příručce POWERnavod. DMP.COM ========= Je univerzální dumpovací program. S jeho pomocí si lze prohlížet obsah souborů uložených na disketě, obsah diskety a obsah operační paměti. Syntaxe příkazu: DMP [[device:]outputfile=][device:][inputfile]/switch/... Neuvedená přípona je u výstupního souboru doplněna jako .PRN, u vstupního souboru se přípona uvést musí. Neuvedený výstupní soubor je chápán jako CON:. Není-li uveden vstupní soubor, ale je-li uveden drajvr, bude prohlížena disketa, není-li uveden ani vstupní soubor ani drajvr, bude prohlížena operační paměť. Pře- pínače určují výstupní formát: /B - byte /W - word /A - ascii /S:od - počáteční záznam nebo adresa /E:do - poslední záznam nebo adresa /L - šíře výpisu bude 80 znaků, jinak je 40 znaků /K - po vypsání 20 řádek čeká na stisk klávesy Není-li uveden žádný z přepínačů A, B nebo W, je to stejné, jako kdyby byl uveden přepínač A. Přepínače lze různě kombinovat. Je-li za číslem uveden znak "." ( tečka ), je chápáno jako deka- dické, jinak jako hexadecimální. příklady formátu zobrazení dat: FILE: 123456.COM RECORD NUMBER 0000 MEMORY PAGE NUMBER 0000 0000 00 00 00 00 00 00 00 00 *........* /B/A 0008 0000 0000 0000 0000 *........* /W/A 0010 00 00 00 00 00 00 00 00 00 00 00 /B 001B 0000 0000 0000 0000 0000 0000 0000 /W 0029 00 00 00 00 00 00 * 0000 0000 0000 /B/W 002F *................................* /A 004F 00 00 00 00 * 0000 0000 *....* /B/W/A příklady použití: DMP =PIP.COM/A/K DMP =/S:100/E:1024. DMP LST:=A:/S:0/E:10./B/A/L Další programy ================ Následující text poskytuje základní informace o některých dalších programech systému CP/M. Podrobnější informace jsou uve- deny v příručkách X80navod, GEN80navod, EDTnavod, literatuře firem Digital Research, Microsoft, Borland a dalších. ASM.COM absolutní assembler I8080. Syntaxe: ASM [d:]filename[.p1p2p3] kde: d: je určení diskové jednotky A: až P: filename je jméno souboru .ASM se zdrojovým textem, generují se soubory filename.HEX a filename.PRN p1 určení diskové jednotky se souborem .ASM p2 určení diskové jednotky pro soubor .HEX p3 určení diskové jednotky pro soubor .PRN uvede-li se disková jednotka Z, je generování souboru ( HEX nebo PRN ) potlačeno, uvede-li se jednotka X, bude výpis PRN směrován na CON:. Zdrojový text musí mít tvar: [číslo+mezera][návěští[:]]tab[operace][tab[operand]][;komentář] Assembler zná tyto matematické operátory a pseudoinstrukce: * / MOD SHR SHL + - NOT AND OR XOR ( ) ORG END EQU SET IF ENDIF DB DW DS LOAD.COM převádí soubor .HEX obsahující strojový kód ve for- mátu intel HEX do tvaru spustitelného souboru .COM. Syntaxe: LOAD [d:]jméno[.HEX] GENHEX.COM převádí spustitelný soubor .COM do tvaru souboru .HEX obsahující strojový kód ve formátu intel HEX. Syntaxe: GENHEX [dev:]jméno[.COM] [hexadresa] M80.COM makroassembler I8080 a Z80. Syntaxe: M80 [[[outputfile.REL][,listfile.PRN]=]inputfile.MAC[/switch]] kde switch určují: /C generování souboru křížových referencí .CRF pro CREF80 /H hexadecimální výpis ( implicitně ) /L generován bude protokol o překladu ( implicitně ) /O oktalový výpis /P rozšíření zásobníku o 256 položek ( lze opakovat ) /R generován bude relativní kód /Z zdrojový text je v assembleru Z80 Assembler zná stejné matematické operátory a pseudoinstrukce ja- ko ASM.COM, navíc pak ještě: IFT IFE IFF IF1 IF2 IFDEF IFNDEF IFB IFNB ELSE ASEG CSEG DSEG EXTRN EXT PUBLIC ENTRY NAME DC INCLUDE PAGE TITLE SUBTTL COMMON .COMMENT .PRINTX .RADIX .Z80 .8080 .REQUEST .LIST .XLIST MACRO ENDM EXITM LOCAL IRP IRPC REPT L80.COM linkovací ( spojovací ) program. Syntaxe: L80 [[outputfile=]inputfile[,inputfile[,...]][/switch]] kde switch určují: /D:hexadresa - nastavení počáteční adresy datového segmentu /E[:symbol] - zavedení programu po spojení nebo nastavení startovací adresy a předání řízení systému /G[:symbol] - zavedení a spuštění programu po spojení od startovací/uvedené adresy /M - výpis počátku a konce programu a datové oblasti a všech globálních symbolů /N - uložení spojeného programu ( při /E nebo /G ) /P:hexadresa - nastavení počáteční adresy kódového segmentu /R - restart linkování /S - soubor před lomítkem je knihovna /X - generování programu ve formátu intel HEX /Y - generování souboru filename.SYM, který obsahuje tabulku globálních symbolů LIB.COM knihovník. Slouží pro vytváření knihoven podprogra- mů z relativních modulů ( .REL ). Syntaxe: LIB [outputfile.REL=]inputfile[,inputfile[,...]/switch] jako inputfile je možné použít následující tvary: filename - připojí se všechny moduly ze souboru filename<moduly> - připojí se pouze uvedené moduly ze souboru parametr moduly může mít následující tvar: jméno modulu právě tento modul jméno modulu+/-n modul n-tý ( + za/ - před ) modulem jméno ..jméno modulu všechny od prvního do uvedeného modulu jméno modulu.. všechny od uvedeného do posledního modulu jméno modulu..jméno modulu všechny moduly od do switch určují: /C - zruší vytvářenou knihovnu a začne znovu od začátku /E - zruší původní knihovnu, nahradí ji novou a končí /H - hexadecimální výpis /L /L - výpis seznamu modulů a hodnot symbolů /O - oktalový výpis /L /R - totéž jako /E ale bez návratu do CP/M /U - vypíše seznam symbolů, které zůstaly nedefinovány DUMP.COM zobrazí na obrazovce hexadecimálně obsah souboru. Výpis má šíři osmi bajtů. DUMP16.COM zobrazí na obrazovce hexadecimálně obsah souboru. Výpis má šíři šestnácti bajtů. EDT.COM WordMaster editor - celoobrazovkový editor. DO.COM rychlejší verze SUBMITu pro soubory typu .KOM. VERSION.COM zobrazí číslo verze a adresy umístění BIOSu, BDOSu, CCP a zásobníků. VER.COM porovnává dva soubory. Syntaxe: VER filespec1 filespec2 VERIF.COM porovnává dva soubory. Jména souborů se zadavají až po odstartování programu. SHOW.COM usnadňuje prohlížení textových souborů. GEN80.COM assembler Z80. Vstupní soubor je textový typu .GEN, vygenerován je spustitelný program typu .COM. Assembler zná část pseudoinstrukcí M80, z nich bezpečně nezná direktivy začí- nající znakem tečka. Nevyžaduje za návěštím dvojtečku, parametr se v makru označuje znakem "@". MON80.COM monitorovací program. Bližší informace v MON80.TXT. ZSI.COM program je shodný s programem DDT.COM, ale je určen pro Z80. Výpisy jsou formátovány pro pro 40 zn/ř. ZSID.COM stejné se ZSI.COM, ale pro 80 zn/ř MBASIC Microsoft basic. Návrat do CP/M příkazem SYSTEM ZBASIC basic od Zedcor Inc. Návrat do CP/M příkazem QUIT DBASE dBASE II - databázový program TURBO Turbo Pascal - integrované prostředí jazyka pascal MP Multiplan - tabulkový procesor WS Word Star - textový editor ===== napsal LZR Soft, datum poslední editace: 29. 1. 1992 =====