.pl72
.op
    GENS3M

    Ӡ 3M2  Assemble 10 verschiebba )
 =============================================

Start war start Anfan  61h
 col start Anfan  56h

Makros Nam MAC
 L HL,= -- Paramete oder
 L HL,=0*  multiplizier Paramete mi  )
 ENDM
 Aufru mi Nam 1638 ode Nam start
  is Wer fue Paramete -- L HL,1638 )
 Makro koenn nich verschachtel werden.

Tabl size  i dezima   Plat fue di Systemtabelle

Options Optio   Symboltabellenlistin nac de 2 Durchlauf
 Optio   Objektcod wir nich generiert
 Optio   kei Assemblerlisting
 Optio   Assemblerlistin zu Drucker
 Optio 1  Platzier de Objektcod hinte di Symbol-
 tabelle absolut Adresse werde abe nach
 OR berechnet
 Optio 3  kein ueberpruefun wohi de Objektcode
 platzier wir - groesser Geschwindigkeit

 Beispiel Optio 3  schnell Assemblierung kein
 List

 Be Optio 1 ha da ENT-Kommand keine Effekt mi X
 kan ma herausfinde w de Objektcod steh  2 Zahl
 + )

Programmablauf:
  Durchlaeufe 1 Such nac Fehlern Aufba der
 Symboltabelle
 2 Generierun de Objektcodes

  be Fehler wir di Zeil mi eine Fehlernumme ab-
 gebildet
  de Assemble stoppt "E u zu Edito zurueckzukeh-
 ren ander Taste u fortzufahren
  a End de 1 Durchlaufes Pas  errors nn
  a End de 2 Durchlaufes Pas  errors nn
   WARNINǠ  Labe absen  wen Labe nicht
 deklarier  un Tabl used xxx fro yyyy
 wen EN richti benutz wurd erscheint
 Executes xxx  de Objektcod kan mi "R ausge-
 fuehr werden.
  be Optio  wir ein List de Label ausgedruckt

Forma de Assembleranweisungen:
 LABE̠ MNEMONIà OPERANDEΠ BEMERKUNG
 star LĠ HL,labe젠  xxxxx

 wen da 1 Zeichen   Bemerkung
   Assemble Kommand !


    GENS3M

Labels   signifikant Zeichen
  Label koenne nich doppel definier werden
  erro  )
   kan benutz werde u sic au di aktuelle
 Objektcodeadress z beziehen
 z B L HL,$+5

erlaubt Therm un Operationszeichen:
 THERMŠ OPERATIONSZEICHEN
  Dezimalzah 102  Addition
  Hexazah젠 #40  Subtraktion
  Binaercod堠 %100  log AND
  Charakter堠 "a  log OR
  Label󠠠 L102  log XOR
  auc    intege Multiplikation
  intege Division
  MOD-Funktion
 (a?b=a-(a/b)*b)
  Ausdrueck werde IMME vo link nac recht abgear-
 beitet
  relativ Sprungbefehl koenne als:
 J #F00 bzw J $+3
  #F000-($+2   $+3- )
 eingegebe werden
 xxxx  Ausdruc  beliebige )

Assemblerdirektiven:
 labe EQՠ xxx  Wertzuweisun  label xxx )
 ORǠ xxx  Objektcod starte a xxxx
 DEF zz,yy,z  weis de aktuelle Adress xx
 zu
 DEF xxxx,yyy  weis de naechste  Byt xxxx
 zu LSB,MSB
 DEF "string  Eingab vo ASCII-Zeichen
 DEF xxx  xxx Leerbyte werde definiert
 ENԠ xxx  setz di Ausfeuhrungsadresse
 de Maschinencode au xxxx
  i Verbindun mi "R )

Bedingt Anweisungen:
 IƠ xxx  wen da Ergebni  is werde all fol-
 gende Zeile bi ELs ode EN nicht
 assembliert
 ELS xxx  wen vorhe assemblier wurde wir danach
 nich assemblier un umgekehrt
 ENĠ  End de bedingte Assemblierung

 * Verschachtelun nich zulaessin **

Assemblerkommandos:
 modifiziere da Listingformat

 *C  Objektcod wir mi ausgedruckt
 *C  Objektcod wir nich mi ausge-
 druckt
 *D  Objektcodeadresse dezimal
 *D  Objektcodeadresse hexadezimal


    GENS3M

 *Š   ejek    Leerzeilen
 * (Filename  Tex wir vo Kassett geladen
 un assemblier  notwendig
 fue lang Programm )
  Fil mus mi "T gesave werden
  notwendig wei e i einzel-
 ne Block mi Zwischenpausen
 gesave wird di de Assembler
 erlauben de aktuelle Bloc zu
 assemblieren bevo de naechste
 Blco gelade wird.)
  Dies Blocklaeng wir mi "C"
 festgelegt  J groesser umso
 schnelle wir assembliert )
  Mi "C wir auc di Groesse
 de Makro-Puffer festgelegt.
  Di Blocklaeng mus be Ausgabe
 un Wiedereinlade de Blockes
 di selb sei !
  De Tex wir jeweil 2 geladen
  Pas  un Pas  )
 * Strin砠  Ueberschrif   Leerzeilen
 *L  Listin an
 *L  kei Listing
 *M  Makro werde bei Assemblerauf-
 ru mi angezeigt
 *M  Makro werde bei Assemblerauf-
 ru nich mi angezeigt
 *Ӡ  stopp da Listing

EDITOR-Funktionen:
 Da Kommand ha folgende Format:

 à N N S S2
 Kommando Zahl1 Zahl2 String1 String2
  maxima 2 Zeiche )

   Assemblieren
    Rueckkeh in BASIC
 à  Festlege de Include-Puffer  zu Assemb-
 liere vo Kaasett  un de Makro-Puffers
  ACHTUN  loesch Textfil !!
  n,  Loesch Zeil  bi m
    EDI Zeil  (EDIT-Unterkommando folgen)
 SPACŠ  zeig de naechste Charakte de Zeile
 DELETŠ  vorherige Charakter
 CAP SHIF  bi zu naechste TAB-Position
 ENTEҠ  End de Editierens
  (Quit  Urspruenglich Zeil wir nich veraendert
 Ҡ  Editierpuffe ne mi Ursprungszeil laden
 ̠  Liste de ganze Zeile
 ˠ  Loesche de Zeichen au de Cursorposi-
 tion
 ڠ  Loesche alle Zeiche de zeil ab/mit
 Cursorposition
 Ơ  naechste Auftrete de "find"-String und
 edit


    GENS3M

 󠠠  ersetze de "find durc de "substitute"
 Strin  sieh F-Kommand )
 ɠ  Einfuege  End mi ENTE )
 ؠ  Liste de ganze Zeil un I-Mod a Ende
 à  Ueberschreibe de alte Zeile
  n,m,f,  Such vo  bi  nac "find"Strin f,
 dies Zeil wir editiert Dabe is  das
 "substitute"Strin  sieh  un S-Subkom-
 mando vo EDI )
  ,,󠠠  Lade eine Textfiles
  n,  Automatisch Zeilennummerierung mi Start
  un Abstan n.
    nac  Zeile stopp da Listing
  n,  Lis vo  bi m
  n,  Zeil  wir mi Zeilennumme  eingegeben
  n,  Renummerierung mi Star  un Ste m
  n,m,  Sav Zeil n-m mi Nam s
  nich benutzen wen de Tex spaete von
 Kassett assemblier werde sol )
 Ѡ  Umwandel vo GENS Textfile i GENS3
 Textfiles
 Ҡ  Starte de Maschinenprogramms Rueckkehr
 mi REԠ  #C )
  ,,䠠  Veraender de Trennungszeichen i Komman-
 dozeilen 1 Zeiche vo  wir eingesetzt,
 Standar is ","
  n,m,  Sav Zeil n-m Nam   fue spaeteres
 assembliere vo Kassett )
 ֠  Zeig di aktuelle Wert vo N1 N2 S1,
 S2
  n,  Ausgab de Zeile  bi  au de Drucker
 ؠ  Zeig Star un Endeadress de Textfiles.
 A Star mus ei Textfil (z.B vo MONS3)
 gesetz werden da End (be MONS Text
 end=xxx wir i  Star o GENS3+5  ge-
 poked dan Eintrit i GENS (Warmstart)

Fehlercodes:
 0  Falsche Zusammenhang z.B  L BC,D )
 0  Falsch Mnemoniks
 0  Statemen schlech formuliert
 0  Labe mehrmal definiert
 0  Zeil enthael unerlaubte Zeichen d.h ein
 Zeiche welche i diese zusammenhan unguel-
 ti ist.
 0  Unerlaubte Operant
 0  Reservierte Wor wurd al Labe benutzt
 0  Mismatc o registers
 0  Z viel Registe i diese Zeile
 1  Ueberlau (Date sin groesse al  bit)
 1  JP(IX+n un JP(IY+n sin nich erlaubt
 1  Falsch Assemblerdirektive
 1  Symbo noc nich definier (be EQU)
 1  Divisio durc 0
 1  Ueberlau be Multiplikation
 1  verschachtelt Makro definiert
 1 -


    GENS3M

 1  verschachtelte Makroaufruf
 1 -

 Ba Org  Objektcod droh GEN z Ueber-
 schreiben
 Ou o labe space  Kei Plat fue Labels
 Ba memory  Kei freie Speicherplat mehr
 N macr space  Z weni Plat fue Makros
 "C"-Kommando
.PA