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 =====