APPLICATIONSPROGRAMMATION ★ BEDINGTES SUBMIT UNTER CP/M PLUS (CPC AMSTRAD INTERNATIONAL) ★

Bedingtes SUBMIT unter CP/M Plus (CPC Amstrad International)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Unsere Januarausgabe steht diesmal ganz im Zeichen der Programmierhilfen, wie man schon unschwer am Beitrag 'SUPERLIST' sehen kann. Warum aber sollen nur die BASIC-Programmierer davon profitieren? Programmieren kann man nicht nur in Programmiersprachen, einige Systeme, wie CP/M, lassen auch Eingriffe in den Ablauf desselben zu, und damit wären wir schon beim Thema. Für diejenigen unter Ihnen, die auf Ihrem CPC lieber das CP/M-System laufen lassen, haben wir eine nützliche Programm-sammlung abgedruckt.

Beim Aufstieg von CP/M 2.2 auf die Version 3.0 fällt einem so manches auf. Da wären zunächst die vielen neuen Dienstprogramme wie SID, MAC, RMAC, etc. Dazu kommt ein erweitertes Directory, eine erhöhte Datensicherheit, da das ewige < CONTROL > + < C > vor einem Diskettenwechsel überflüssig wird, für den Programmierer eine Menge neuer BDOS-Funktio-nen, und das noch fast genauso stupide SUBMIT wie vorher — eigentlich schade. Denn daß Prozeduren bei CP/M im Vergleich zu anderen Betriebssystemen nur sehr selten angewendet werden, liegt daran, daß SUBMIT kaum die bedingte Ausführung kennt. Ein IF oder ein GOTO, Grundelemente jeder Programmiersprache (na gut, der GOTO-Befehl nicht so ganz) fehlen.
Nun hat die Firma Digital Research Inc. durchaus etwas an SUBMIT geändert. Man kann SUBMIT-Prozeduren unter CP/M Plus schachteln, also innerhalb einer Prozedur nochmals SUBMIT aufrufen. Das ist vergleichbar mit einem CALL in Assembler, einem DBASE DO oder einem GOSUB-Kommando in BASIC. Des weiteren kann man mit SETDEF CP/M veranlassen. bei der Eingabe 'PROG' nicht nur nach PROG.COM, sondern auch nach PROG.SUB zu suchen und notfalls dann SUBMIT automatisch zu starten. Der Befehl SUBMIT braucht also nicht mehr geschrieben zu werden. Auch, man lese und staune, bedingte Prozeduranweisungen gibt es. Eine Zeile, bei der das erste Zeichen ein Doppelpunkt ist, wird nur ausgeführt, wenn der Program-Error-Return-Code zu dieser Zeit auf Null gesetzt ist. Leider setzt kein Programm im Fehlerfall diesen Code.

Bild 1: Eine Beispieldatei

Die im folgenden vorgestellten Programme ermöglichen nun eine bedingte Prozedur. Es handelt sich um die Befehle IF, GOTO und SWITCH. Die fertigen COM-Programme sind jeweils 1 KB groß, was wohl noch zu verschmerzen und auf einer System-Kopie unterzubringen ist.

Die BASIC-Lader der drei CP/M-Pro-gramme werden nach alter Art eingegeben, also abgetippt (mit Checksummer), abgespeichert (sicherheitshalber) und mit RUN “IF“, RUN“GOTO“ und RUN“SWITCH“ gestartet. Sie erzeugen auf der System-Diskette (bitte nur eine Sicherheitskopie nehmen) die drei COM-Dateien.

In der Beschreibung bedeuten die Klammern () eine wahlweise Angabe, die auch fehlen darf.

Untereinanderstehende Angaben sind eine Auswahl, von der ein Symbol geschrieben werden muß.

Die neuen Befehlsdateien und ihre Anwendung

IF
Syntax:
IF (NOT) FILE dateiname (THEN) kommando (ELSE kommando)
EMPTY dateiname SWITCH n TEXT 'textl '= 'textl'
  • FILE ergibt wahr, wenn die angegebene(n) Datei(en) auf der Diskette vorhanden ist/sind.
  • EMPTY ergibt wahr, wenn die angegebene Datei leer ist oder nicht existiert.
  • SWITCH ist wahr, wenn der angegebene Schalter (n = 1 - 7) durch das SWITCH-Kommando gesetzt wurde.
  • TEXT ist wahr, wenn textl und text2 identisch sind. Groß- und Kleinschreibung wird ignoriert.

Die Hochkommata müssen geschrieben werden.

Beispiele:
IF EMPTY ERRFIL.PRN
ERA ERRFIL. PRN ELSE TYPE ERRFIL. PRN
IF NOT FILE $7. ASM GOTO FEHLER
IF TEXT '$2' = 'LOESCH' THEN ERA *.PRN

GOTO
Syntax:
GOTO label

Label ist ein symbolisches Sprungziel. Dieses Sprungziel muß in der Prozedurdatei als Kommentarzeile enthalten sein. Eine Kommentarzeile beginnt mit einem Semikolon. Weder GOTO noch das Sprungziel dürfen die letzte Anweisung der SUB-MIT-Datei sein. Falls dieses notwendig ist, fügen Sie bitte eine leere Kommentarzeile an.

Beispiel:
(beliebige Anweisungen) GOTO ENDE (beliebige Anweisungen);
ENDE; SWITCH

Syntax:
SWITCH (?) (NULL) (ON n) (OFF n)

  • '?' oder leer gibt die aktuellen Schalterstellungen aus. -NULL löscht alle Schalter.
  • ON/OFF schaltet den angegebenen Schalter 1 - 7 ein oder aus. Die Schalter werden im System- Control- Block Byte 6 gespeichert. Die Bytes 6 - 9 des SCB stehen dem Anwender zur freien Verfügung.

Jan Wieck/jb, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEARE: 1989 , 1988
★ CONFIG: CP/M
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1989
★ AUTHOR: Jan Wieck
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Bedingtes  Submit  Unter  CPM  Plus    (CPC  Amstrad  International)    GERMANDATE: 2020-06-21
DL: 177
TYPE: ZIP
SiZE: 8Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » CP/M IBM Transfer (CPC Amstrad International)
» Applications » File - Mover (CPC Amstrad International)
» Applications » CPM Password Protection Remover
» Applications » Initiation à CP/M: CP/M et le CPC devient PRO (Amstrad Magazine)
» Applications » Contabilidad (Amstrad Especial
» Applications » CP/M 2.0
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 608 millisecondes et consultée 1015 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.