2000 3e53 0000 I ... HISOFT-PASCAL
***************************************************************
          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