*************************************************************** B E S C H R E I B U N G Hisoft-Pascal (C) *************************************************************** (c) by N.H.&> U.G. Mai 1987 Diese Version von Hisoft wurde fuer den ZX-Spectrum entwickelt. Es handelt sich um eine Standardpascalversion, die im Compiler stark abgeruestet wurde. Ebenfalls wurde die Schnittstelle zu anderen Editoren mit Uebergabe von ASCII-Text zu Gunsten des Speicherplatzbedarfes entfernt. Die angepasste Version fuer den Z-1013 ist gegen einige Aende- rungen geschuetzt, dieser Schutz beeintraechtigt die Arbeit mit dem Compiller in keiner Weise und braucht nicht entfernt werden. Als Kassetteninterface ist fuer diese Version der >HEADER< von Rainer Brosig ueber Sprungverteiler vorgesehen. Damit er- oeffnen sich fuer den Anwender folgende Moeglichkeiten: 1. Abspeichern von Quelltexten P(z1,z2) 2. Lesen von Quelltexten G 3. Verbinden von Quelltexten G 4. Abspeichern von lauffaehigen MC-Programmen T,z1 Beim Letzteren wird der Pascaleditor und der Compiler zerstoert ( wenn 'Y' eingegeben wird ) und es erfolgt ein Linken, an- schliessend wird die SAVE-Routine angesprungen und das MC-Pro- gramm kann aufgenommen werden.Nach dem Absaven wird das MC-Pro- gramm automatisch gestartet.Ein aeusserer Start ist auf Adresse 03F9 H jederzeit moeglich. Zu Testzwecken waehrend der Erstel- lung ist ein Probelauf nach dem Compilieren moeglich, dazu ist die Frage 'Run?' mit 'Y' zu beantworten. Dieser Probelauf zer- stoert NICHT den Compiler!Das Kommando 'R'wiederholt den Start. STEUERKOMMANDOS: ---------------- (...) Parameterangabe Pflicht! Iz1,i1 Insert ab Zeile mit Increment (*wie AUTO *) Lz1,z2 Listet Quelle ab Zeile1 bis Zeile2 K(x1) Anzahl der Zeilen bei List (*Siehe LINES*) Cz1,z2 Compile Zeile1 bis Zeile2 D(z1,z2) Delete Zeile1 bis Zeile2 M(z1,z2) Move Kopiert Zeile1 auf Zeile2 N(z1,i1) Renumber 1.Zeile,Increment Fz1,z2,$1,$2 Finde von Zeile1 bis2 $1 und gehe in EDIT Ez1 Edit Zeile1 'SPACE' Pointer rechts '<-' Pointer links '->' Tabulator 'ENTER' Abschluss Mode Q Quit := Zustand vor EDIT R Reload := Zustand vor Aenderung in EDIT L List Zeile K Kill aktuelles Zeichen Z Kill bis Zeilenende F Weitersuchen(siehe 'F'-Kdo) S Substitute $1 gegen $2 (siehe 'F'-Kdo.) I Insert bis 'ENTER' C Change bis 'ENTER' (ueberschreiben) X Pointer an das Ende setzen und Insert-Mode P(z1,z2) Put (Text auf Band schreiben) G Get (Text von Band lesen) Cz1 Compile ab Zeile1 R Run Probelauf T :=MC Programm Adressen umrechnen+linken B Bye Systemaustritt X Ausgabe Anfangsadresse Textpuffer W Ausgabe der Quelle auf Drucker *************************************************************** ** ** ** F E H L E R M E L D U N G E N C O M P I L E R ** ** ** *************************************************************** 1 ZAHL ZUGROSS 2 ;ERWARTET 3 UNDEF. NAME 4 NAME ERWARTET 5 BEI CONST = UND NICHT := 6 =ERWARTET 7 EINE ANWEISUNG DARF NICHT MIT DIESEM NAMEN BEGINNEN 8 :=ERWARTET 9 )ERWARTET 10 TYPFEHLER 11 .ERWARTET 12 FACTOR ERWARTET 13 CONSTANT ERWARTET 14 NAME IST KEINE CONSTANTE 15 THEN ERWARTET 16 DO ERWARTET 17 TO ODER DOWNTO ERWARTET 18 ( ERWARTET 19 AUSDRUCK TYP KANN NICHT GESCHRIEBEN WERDEN 20 OF ERWARTET 21 ,ERWARTET 22 :ERWARTET 23 PROGRAM ERWARTET 24 VARIABLE EWARTET,DA PARAMETER VARIABEL IST 25 BEGIN ERWARTET 26 BEI READ VARIABLE ERWARTET 27 AUSDRUECKE DIESES TYPS KOENNEN NICHT VERGLICHEN WERDEN 28 INTEGER / REAL ERWARTET 29 VARIABLENTYP KANN NICHT GELESEN WERDEN 30 DIESER NAME IST KEIN TYP 31 BEI REAL IST EXPONENT VERLANGT 32 SCALARER AUSDRUCK , KEIN NUMERISCHER ERWARTET 33 LEERSTRINGS VERBOTEN,CHR(0) VERWENDEN 34 (/ERWARTET 35 /)ERWARTET 36 ARRAYINDEX MUSS SCALAR SEIN 37 ..ERWARTET 38 (/ ODER , ERWARTET IN ARRAY DECLARATION 39 OBERGRENZE<UNTERGRENZE! 40 ZU LANG! MAX.256 ELEMENTE 41 ERGEBNIS VOM TYP NAME ERWARTET 42 , ODER /) ERWARTET IN SET 43 ../ ,/ /) ERWARTET 44 PARAMETERTYP MUSS NAME SEIN 45 LEERES SET KANN NICHT FACTOR IN NICHT-ZUWEISUNGSANW. SEIN 46 SCALARTYP (+REELLE ZAHL) ERWARTET 47 SCALARTYP REELLE ZAHLEN ERWARTET 48 SETS NICHT VERTRAEGLICH 49 < AND > SETS NICHT DAMIT VERGLEICHEN 50 FORWARD,LABEL,CONST,VAR,TYPE BEGIN ERWARTET 51 HEXAZAHL ERWARTET 52 SETS KOENNEN NICHT GEPOKET WERDEN 53 ARRAY ZU GROSS 54 END ODER : IN RECORDDEFINITION FEHLT 55 FELDNAME ERWARTET 56 NACH WITH VARIABLE ERWARTET 57 WITH VARIABLE MUSS RECORD TYP SEIN 58 FELDNAME NICHT MIT WITH ANWEISUNG IN VERBINDUNG 59 NACH LABEL VORZEICHENLOSE INTEGERZAHL 60 NACH GOTO VORZEICHENLOSE INTEGERZAHL 61 MARKE IN FALSCHER PROGRAMMEBENE 62 MARKE NICHT VEREINBART 63 PARAMETER VON SIZE MUSS VARIABLE SEIN 64 AUF ZEIGER NUR GLEICHHEITSTEST ANGEWANDT 65 ZULAESSIGE WRITE-PARAMETER FUER INTEGER: E:M:H 66 $ ENTHAELT KEIN ZEILENENDEZEICHEN 67 PARAMETER VON NEW,MARK,REALISE MUSS ZEIGERVARIABLE SEIN 68 PARAMETER VON ADDR MUSS VARIABLE SEIN Folgende Pascalbefehle sind implementiert: ========================================== FRAC EXP LN ARCTAN TAN COS SIN INP OUT SIZE ADDR INLINE ENTIER USER RANDOM INCH HALT EOLN PAGE SQRT ROUND TRUNC MAXINT SUCC PRED ORD PEEK POKE RELEASE MARK NEW TOUT TIN CHR ODD ABS SQR FALSE TRUE BOOLEAN CHAR REAL INTEGER READLN READ WRITELN WRITE PACKED NIL FORWARD PROGRAM OR OF TO DO IF SET NOT MOD DIV VAR AND FOR END GOTO WITH TYPE CASE ELSE THEN LABEL CONST ARRAY UNTIL WHILE BEGIN RECORD DOWNTO REPEAT FUNCTION PROCEDURE STRINGS MUESSEN ALS ARRAY OF CHAR VEREINBART WERDEN *************************************************************** ** ** ** COMPILERSTEUERUNG ** ** ** *************************************************************** Die Compilersteuerung erfolgt unter Benutzung der Kommentarklam- mern (*,*). Der Compiler erkennt eine Zeichenkette als Steuerzei- chen an, wenn vor ihr das reservierte Symbol'$' eingetragen ist. '+' schaltet Mode ein , '-' schaltet Mode aus. '+' und '-' werden jeweils nach dem Steuerbuchstaben gesetzt. Zum Beispiel schaltet (*$L+*) auf vollstaendiges Listing Folgende Buchstaben sind zulaessig: (+) (-) L(+)...... VOLLST.LISTING NUR FEHLERZEILEN O(+)...... OVERFLOWTEST BEI INTEGER(+/-) ENTFAELLT(SCHNELLER) C(+)...... TASTATURABFRAGE BEI TEST KEIN ENDLOSSCHLEIFENTEST A(+)...... TEST FELDINDIZESGROESSE TEST ENTFAELLT I(-)...... BEI INTEGER <>= RICHTIG AUCH KOREKTUR WIRD NICHT BEI OVERFLOW DURCHGEFUEHRT P......... DRUCKER EIN/AUS (ohne +/-) letzter Bearbeiter: Nicolas Hildebrandt W.-Kuelz-Str. 34 Weimar 5300