ROM-RAM-1/0. (:: cornrnodore. Serie 610 und 710. Hardware - Beschreibung. Assemblerlisting. ausführlich dokumentiert. 2. verbesserte Auflage

Ähnliche Dokumente
Serielle Schnittstellen

11. Die PC-Schnittstelle

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikrocomputertechnik. Unterprogramm

Unterprogramme mittels Stack (Forts.)

Hinweise Dekodierung

Vorbemerkungen zum 5. Versuchstag:

Serielle Schnittstelle

Operationsmodi des Timers Modus 0 : Ausschalten des Zählers

Adressierungsarten des 6809 (Forts.)

GI Vektoren

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Technische Kurzinformation. Umstellung auf RoHS-konforme Kommunikationskarten

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden

2017/01/23 15:50 1/5 Bedienung

UEM 300 Analoges Wählmodem

8. Arbeiten mit Dateien

Inhaltsverzeichnis. Vorwort 13

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Name : Klasse : Punkte : Note :

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Die RS Schnittstelle

SMP Übung 9 - Lösungsvorschlag

DST EINFÜHRUNG IN MRT (V2)

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

SIMATIC S5 SIEMENS. MODBUS-Protokoll RTU-FORMAT SIMATIC S5 ist Master. Kurzinformation. Sondertreiber für CP 524 / CP (S5-DOS) S5R004

Übungsblatt 10 (Block C 2) (16 Punkte)

MP /52 Controller Modul

ANT-5 Software Upgrade - Installationshinweise

SBF - Studio Bedienfeld für MMIB

LCD board EB

Beispiel. Echo-Anwendung. Beispiel Echo Anforderungen. Benutzer stellt Konfiguration der seriellen Schnittstelle am PC ein (z.b. über Hyperterminal)

Bedienungsanleitung M-Box / L-Box / C-Box

6.2 CP/M-Systemroutine BIOS-65

Schaltungshinweise zum Linux Control System mit DIL/NetPC DNP/7520

2

140 ESI Kommunikationsmodul

Aufgabe 2 - Erweiterung um PIC und Interrupts

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

SMP Übung 8 - Lösungsvorschlag

Bootvorgang des DSM-Systems Systems Plurix

Kapitel 18. Externe Komponenten

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

Beschreibung RS232-Protokoll für POWER-TRAP Fotovoltaik-Wechselrichter (ab Protokollversion ENS1 = 5 und ENS2 = 6)

Mikroprozessortechnik Grundlagen 1

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Handbuch zum INTEL-MCS51 Basic-Terminal

Konverter. Gruppe 11. Unser Weg ist Ihr Ziel. Der Spezialist für ADD-On Produkte. Tel Fax Fax

Datenübertragung. Vorschau. Das vorliegende Kapitel umfaßt folgende Themen:

Mikrocomputertechnik. 6. Exceptionhandling ( Ausnahmebearbeitung)

i386 Interrupt-Deskriptortabelle (IDT)

E Mikrocontroller-Programmierung

Interrupts im Handbuch des ATmega128 gründlich lesen.

A ProgrAmmer s Guide to KIM Programming

Assembler DOS (Beta 1) Copyright 2000 Thomas Peschko. Assembler II - DOS. ASSEMBLER Arbeiten mit Dateien und Daten.

6. Peripheriegeräte und Schnittstellen

Die serielle Schnittstelle in der MSR - Technik

Programmieren in C/C++ und MATLAB

"Organisation und Technologie von Rechensystemen 4"

8051Speicherorganistaion. SFR u. oberer Datenspeicherbereich teilen sich den SPECIAL FUNCTION REGISTER. gleichen Adreßbereich. indirekt adressierbar

Geräteverwaltung: Einführung

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Vorlesung 5: Interrupts

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

E. Fehlermeldungen von PC-Bibliotheken

Ein- Ausgabeeinheiten

Konzepte von Betriebssystem-Komponenten. Ausnahme- / Unterbrechungsbehandlung

Von-Neumann-Architektur

Mikrocomputertechnik

Anhang. Spezifikationen

Übung zu Betriebssystembau (Ü BS)

C-DIAS-Serielles-Interface CSI 021

Betriebsanleitung Sartorius

RGB-Sequenzer RS232 RS485 MDX512 AD / IO Platine

Compuprint SP40plus. Firmware-Aktualisierung. Um den SP40/SP40plus zu einem anderen Firmwarestand zu verhelfen, sind nur wenige Handgriffe notwendig:

Unified-E Modbus Adapter

Forth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort

Serielle Datenübertragung mit dem Schnittstellenbaustein 8251

Die Robo-TX RS-485 Schnittstelle

NC-Datenübertragung PC <=> Maschinensteuerung

Ansteuerung eines LCD-Screens

Serielle Kommunikation - Kodierung

Name : Klasse : Punkte : Note :

9. Vektoren. (auch Felder/array)

1. Allgemein Technische Daten... 2

0. Einführung Hardware-Daten des Systems Software-Daten des Systems Aufbau eines Objektprogramms 0-13

BEDIENUNGSANLEITUNG FESTPLATTENERWEITERUNG KORG i2hd/i3hd

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Serielle Kommunikation - Kodierung

7 Laufzeit-Speicherverwaltung

80C535-Mikrocontroller-Board im Streichholzschachtelformat

Transkript:

(:: cornrnodore Serie 610 und 710 Hardware - Beschreibung ROM-RAM-1/0 Assemblerlisting ausführlich dokumentiert 2. verbesserte Auflage R. Schineis 0.-M. Braun

Vorwort Das vorliegende, kommentierte und strukturierte Assemblerlistins des Betriebssystems CBM 610 u. 710 wurde mit dem Hard + Soft 'Reassembler - Assemblersystem' unter Verwendung des Original-Betriebssystems mit folgender Kennung erstellt: BASIC LOW 901243-02B CBM II 128K BASIC HI 901242-02 CBM li 128K Kernal 901244-03B CBM II LP/HP Diese ROMs sind in den Rechnern, Stand August/September 1983 eingebaut. Das Buch ist in folgende fünf, verschiedenfarbige Teile gegliedert: 1. Hinweise zur Benutzung der Segment-Umschalteroutinen 2. Beschreibung der Hard- und Software der Schnittstelle RS 232 C 3. Speicherbelegung, ROM/RAM-Cartridge, Steckerbelesungen 4. Assembler-Listing BASIC lo/hi mit Crossreferenztabelle 5. Assembler-Listing Operating-System (Kernall mit Crossreferenztabelle Im ersten Teil finden Sie ein von Commodore zur Verfügung gestelltes Listing mit Beschreibung zur Benutzung der Segment-Umschaltroutinen. Damit ist es möglich, Maschinenunterprogramme in anderen 64K-Segmenten als dem gerade benutzten zu verwenden. Es besteht damit auch die Möglichkeit einer Segment- Umschaltung zum Segment $F (Betriebssystem) im Falle eines IRQ, NMI oder BRK. Der zweite Teil behandelt ausführlich die Schnittstelle RS 232 C. Es wird darin Allgemeines über die Schnittstelle, der Befehlsaufbau, der Status und die Hardware beschrieben. Im dritten Abschnitt finden Sie eine Übersicht der Speicheraufteilung, Besonderheiten und Handhabung des Cartridge-Anschlusses und eine Zusammenfassung aller Steckerbelegungen. Im vierten und fünften Teil finden Sie das zweiteilige Assemblerlisting. Es ist jeweils durch eine Crossreferenz-Tabelle, in der alle Label mit ihren Adressen und den Zeilennummern in denen diese Label vorkommen, abgeschlossen. Bei der Erstellung wurden, soweit bekannt und möglich, die Original Commodore-Label verwendet. Gleiche Adressen können in beiden Teilen mit verschiedenen Namen bezeichnet sein. Für dieses Buch ist nach Erscheinen der Rechner mit deutscher Tastatur ein voll kommentiertes Listing des geänderten Operating-Systems beim Herausgeber erhältlich. Außerdem wird für die Rechner CBM 620 u. 720 (deutsche Tastatur l wegen größerer Abweichungen ein eigenes As semblerlisting herausgegeben. Das zweite Buch enthält bereits das oben erwähnte Operating-System mit deutscher Tastatur. Der Buchrücken ist verleimt. Die Innenseiten sind für eine eventuelle Ringbuchablage vorgelocht. Es ist dadurch problemlos möglich, bei häufigem Gebrauch die einzelnen Seiten in einem Ringbuchordner abzulegen. Der Inhalt des vorliegenden Buches wurde sorgfältig überprüft. Es ist jedoch nicht ganz auszuschließen, daß hier und da noch Druck- und andere Fehler vorliegen. Die Autoren sind für jeden schriftlichen Hinweis dankbar, um in kommenden Auflagen Ihre Erfahrungen einfließen lassen zu können. Außerdem sind alle weiteren Anregungen, sei es als Wunsch oder als Vorschlag, willkommen. R. Schineis 0. - M. Braun

INHALTSVERZEICHNIS 1. Hinweise zur Benutzung der Segment-Umschalteroutinen mit Demo-Programmlisting 2. Beschreibung der RS 232 C - Schnittstelle, Soft- und Hardware 2.1 Allgemeines 2.2 BASIC 4.0 und RS 232 C 2.3 Statusvariable 2.4 Hardware RS 232 c 3. Speicherbelegung, ROH/RAH-Cartridge, Steckerbelegungen 3.1 Beschreibung I Übersicht der Speicheraufteilung 3.2 ROH/RAH - Cartridge-AnschluB 3.3 Steckerbelegungen 3. 3. 1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 IEEE Stecker Keyboard Stecker cartridge Stecker Video Stecker User Stecker Audio Stecker Spannungs Stecker Co-Prozessor Stecker RS 232 C - Stecker 3.3.10 Expansion Stecker 4. Assembler - Listing Teil 'BASIC' 4. 1 4.2 Assembler - Listing 'BASIC 4.o Crossreferenz - Tabelle 'BASIC 4.0' Seite - 203 Seite 1-28 5. Assembler - Listing 'Operating-System' 5. 1 5.2 Assembler - Listing 'Operating-System' Crossreferenz - Tabelle 'Operating-System' Seite - 111 Seite 1-18

1. Hinweise zur Benutzung der Segment-Umschalteroutinen Die Segment-Umschalteroutinen dienen dem Programmierer als Hilfsmittel, das ihm erlaubt, Unterprogramme in anderen 64K-Segmenten (Bank) als dem gerade benutzten zu verwenden. Es werden dabei alle Register und Statusinformationen an das Unterprogramm übergeben. Nach der Rückkehr stehen die nun gültigen Registerwarte und Statusinformationen dem aufrufenden Programm zur Verfügung. Es besteht außerdem die Möglichkeit einer Segment-Umschaltung zum Segment $F (Betriebssystem Bank 151 im Falle eines Interrupts (IRQ), eines nicht maskierten Interrupts (NHil und eines Break (BRK), wenn gerade ein Programm in einem anderen Segment ausgeführt wird. Die Segment-Umschalteroutine besteht aus dem fast im Betriebssystem-ROH (Segment $F = Operating-System) abgelegten Teil und den Teilen in den jeweils benutzten RAH-Segmenten. Dia Routinan in den RAH-Segmenten sind weitgehend identisch mit den ROH-Routinan; mit Ausnahme der Interruptbehandlung. Der Interrupt wird durch die Interrupt-Routinen in Segment $F bearbeitet, während die Interrupt-Routinen im RAH nur die Umschaltung auf das Segment $F vornehmen. Oie folgenden Beispielprogramme zeigen, wie Betriebsystem-Routinen von einem RAH Segment aufgerufen werden können. Bei der Programmierung in Assembler sollte das später gelistete Sourcecode-Hodul 'TXRAH' an das Ende eines jeden Programmes gelegt werden. Es können dann die Betriebssystem-Routinen und -Vektoren verwendet werden. Zur Umschaltung ist ein kurzes Programm in das RAH des Segmentes $F zu laden (Beispiel! o. Beispiel2). Es initialisiert den Stack-Pointer im RAH- Segment und übergibt die Programmkontrolle an das gewünschte Segment. Beim Übergang der Programmkontrolle von einem Segment an das andere, wird der aktuelle Stack-Pointer in die Speicherstelle '$01 FF gerettet. Es muß deshalb bei der I ni tialisierung des Stack-Pointers eines jeden RAH-Segmentes der Wert $FE' in die Speicherstelle '$01FF' geschrieben werden, um diese Speicherstalle zu schützen. Die Nummer das Segmentes, an das die Programmkontrolle abgegeben wird, wird durch den Inhalt des 6509 Oata-Indirection-Registers ($00011 bestimmt. Die obersten zwei Bytes auf dem Stack beinhalten die Adresse innerhalb des Segments. Dadurch ist es nach entsprechendem Setzen des Indirection-Registers möglich, das Unterprogramm an der gleichen Adresse aufzurufen, an der es sich im gewünschten Segment befindet. Das Unterprogramm im aktuellen Segment ruft die Unterroutine 'EX SUB' als Unterprogramm auf. EXSUB' benutzt die Rücksprung-Adresse abzgl. 2 als Sprung-Adresse im neuen Segment. Das folgende 'Beispiel!' und die Betriebssystem-Aufrufe benutzen diese Methode zum Aufruf der Routinen im anderen Segment. Es ist dies die günstigste Methode. Sie setzt jedoch voraus, daß sich die aufrufende Routine an der gleichen Adresse befindet wie die Aufzurufende. Befinden sich die Routinen nicht an der gleichen Stelle, dann wird die Adresse der Routine +2 auf den Stack gelegt und danach die Routine 'EXSUB' direkt angesprungen, siehe 'Beispiel2'. Beim Aufruf von Maschinen-Unterprogrammen von BASIC aus ist zu beachten, daß sich keine Speicherüberschneidungen ergeben. Es werden in den RAH-Segmenten zusitzlich zu dem von Daten und Programmen beanspruchten Speicherplatz die Seiten '$OOXX, $01 XX, $FEXX, $FFXX' benutzt. Zur Bereitstellung von RAH-Bereichen dienen die Routinen 'HEHTOP' und 'HEHBOT' (siehe Listing Operating-System).

segment-umsch. beispiell hard+soft ass/reass.... seite 0002 zeile adr. obj.-code source-code 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0 780 0020 0780 a9 01 0021 0 782 85 01 0022 0784 20 19 ff 0023 0 78 7 a9 fe 0024 0789 91 ac 0025 078b 20 b2 fe 0026 078e 0027 078e ===> beispiell <=== dieses programm wird in das segment $f = bank 15 geschrieben. im beispiel soll ein anwenderprogramm im segment $01 = bank 1 inititialisiert und aufgerufen werden. das programm muß sich an der gleichen stelle wie der aufruf befinden (adresse $078b} i6509 ipoint ipini t exsub $0001 $00ac $ffl9 $feb2 = $0780 anfangsadresse lda sta jsr lda sta jsr.end 6509 indirection register addrl ram indirekt-painter 'ipoint auf $0100, yr=$ff execute-subr. auf vektor 'ipoint' #$01 Segmentnummer 1 i6509 6509 indirection register ipini t 'ipoint auf $0100, yr=$ff #$fe wert für stack-pointer lipointj,y $0 lff = $fe exsub ums eh. zu dieser adresse in bank 1 fehler in pass 1 fehler in pass 2 1 a bel- t a belle label adr. exsub feb2 i6509 0001 ipinit ff19 ipoint OOac assemblierung ende

segment-umsch. beispielz hard+soft ass/reass... seite 0002 zeile adr. obj.-code source-code 0002 0003 ===> beispiel2 <=== 0004 0005 0006 0007 0008 0009 0010 00 I I 0012 0013 0014 0015 0016 0017 0018 0019 0020 0780 0021 0780 0022 0782 0023 0784 0024 0786 0025 0788 0026 0789 0027 078b 0028 078c 0029 078e 0030 0790 0031 0792 0032 0793 0033 0795 0034 0796 0035 0799 0036 0799 dieses programm wird in das segment $f = bank 15 geschrieben. im beispiel soll ein anwenderprogramm im segment $01 = bank I inititialisiert und aufgerufen werden. das programm befindet sich an einer beliebigen adresse (im beispielbei start" = $078b). a9 0 I 85 0 I ao 01 84 ad 88 84 ac 88 a9 fe 91 iic a9 02 48 a9 02 48 4c b2 fe i6509 ipoint start starta ipini t exsub $0001 $00ac $0200 start+2 $ff19 $feb2 : $0780 lda lt$0 I sta i6509 ldy lt$01 sty ipoint+l dey sty ipoint dey lda #$fe sta (ipoint),y lda l>s tarta pha lda l<starta pha jmp exsub.end 6509 indirection register addrl ram indirekt-painter startadresse in bank I startadresse+2 für stack "ipoint" auf $0100, yr=$ff execute-subr. auf vektor "ipoint" anfangsadresse Segmentnummer I 6509 indirection register "ipoint" auf $0100 addrh ram indirekt-painter addrl ram indirekt-painter yr = $ff wert für stack-pointer $0 lff = $fe addrh startadresse+2 addrl startadresse+2 umsch. zur stack-adresse in bank 1 Fehler in pass I fehler in pass 2 label-tabelle label adr. exsub start feb2 0200 i6509 starta 0001 0202 ipinit ffl9 ipoint ooac assemblierung ende

testprg für beispiel1+2 hard+soft ass/reass.... seite 0002 zeile adr. obj.-code source-code 0002 0003 ===> testprogrammfür beispiell u. beispiel2 mit "tkram <=== 0004 0005 dieses programm befindet sich im segment $01 = bank I 0006 es wird durch "beispiell oder 2" aus bank 15 angesprungen 0007 nach ausführungerfolgt der ausdruck "testumschaltung 0008 für "beispiel2" ist die Startadresse beliebig wählbar 0009 0010 an das eigentliche programm schließt die routine "tkram an 0011 dieseroutineist hauptsächlich einekopieaus dem "kernal 0012 0013 00 I 4 0015 ===> ausführendes beispiel-programm "start" <=== 0016 0017 0018 078b 0019 078b 0020 078d 0021 0790 0022 0793 0023 0794 0024 0796 0025 0798 0026 0798 0027 0798 0028 079b 0029 079d 0030 079e 0031 079f 0032 0 TaZ 0033 07a2 0034 0034 0034 0034 0034 0035 ao 00 b9 a 2 0 7 20 d2 ff c8 co Oe do f5 20 e I ff do ee 00 ea 4c 8b 07 07a2 55 4d 53 tekt 07a5 43 48 41 0 7a8 4c 54 45 0 7ab 54 45 53 07ae 54 20 07b0 tek = $078b s tart ldy 11$00 startl lda tekt,y jsr kbsout iny cpy lltek-tekt bne startl jsr kstop bne start brk nop jmp start.byt umschaltetest ansprungadresse von segment $15 (wichtig für "beispiell "J ein zeichen aus tekt holen ausgabe I char auf akt. kanal offset erhöhen ende der zeichenkette? nicht alle zeichen stop-taste lesen nicht gedrückt, neuer tektdruck ende mit brea k wenn weiter, neustart

anhang-raut. -txram- hard+soft ass/reass.... seite 0003 zeile adr. obj.-code source-code 0037 07b0 0038 07b0 ===> anhang-routine 'txram <=== 0039 07b0 0040 07b0 004 I 07b0 0042 07b0 0043 0 7b0 OOH 07b0 0045 0 7b0 0046 07b0 0047 fe64 0048 fe64 e6509 i6509 ipoint stackp exsub $ $000 I $00ac $01ff $feb2 = exsub-78 0049 fe64 ---> ansprung irq/brk vom ram-segment <--- 0050 fe64 0051 fe64 85 ac 0052 fe66 68 0053 fe67 48 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 006 7 0068 0069 0070 007 I 0072 0073 0014 0075 0076 0077 0078 0079 0080 008 I 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 fe68 85 ad fe6a a5 01 fe6c 48 fe6d a5 ad fe6f 20 99 fe fe72 85 ac fe 74 68 fe75 85 01 fe77 a5 ac fe 79 40 fe 7a fe7a fe7a fe 7a fe7a fe7b fe7d fe7e fe80 fe8 1 fe84 fe85 fe87 fe88 febb febc fe8e febf fe92 fe93 fe95 fe96 fe98 fe99 fe99 fe99 fe99 fe99 fe9b 0093 fe9d txirq sta ipoint pla pha sta ipoint+l lda i6509 pha lda ipoint+l jsr txirq2 sta ipoint pla sta i6509 lda ipoint rti ---> ansprung nmi vom ram-segment <--- a5 ac 48 a5 ad 48 ad ff 01 48 a5 01 48 20 35 ff 68 85 01 68 8d ff 01 68 85 ad 68 85 ac 40 txnmi pha lda ipoint pha lda ipoint+1 pha lda stackp pha lda' i6509 pha jsr exnmi pla sta i6509 pla sta stackp pla sta ipoint., pla sta ipoint rti ---> rts - adresse lrq brk' <--- 29 10 do 05 txirq2 and #$10 bne exbrkx 0094 fe9d ---> ausführung lrq in segment $0f <--- 6509 execution register 6509 indirection register addrl ram indirekt-painter wert für stack-pointer execute-subr. auf vektor 'ipoint' addrl ram indirekt-painter stackpointer in ac zurück für rti addrh ram indirekt-painter 6509 indirektion register Stackpointer in ac diese rts-adr. speichern i6509 wiederherstellen 6509 indirektion register ac wieder zurückholen ausführung rti ac retten addrl ram indirekt-vektor ipoint retten addrh ram indirekt-vektor ipoint+l retten Stackpointer Stackpointer retten 6509 indirektion register i6509 retten aufruf nmi als subr. in bank 15 i6509 zurück 6509 indirektion register Stackpointer zurück stackpointer ipoint+1 zurück addrh ram indirekt-vektor ipoint zurück addrl ram indirekt-vektor test auf break sprung zu break

hard+soft ass!reass... seite 0004 anhang-raut. -txramzeile adr. obj.-code source-code 0095 fe9d 0096 0097 fe9d fe9f a5 ac 4c 3c ff 009B fea2 0099 fea2 0100 fea2 0101 fea2 a5 ac 0102 fea4 4c 39 ff 0103 fea7 0104 fea7 lda ipoint jmp exirq ---> ausfürung "break" in segment $Of <--- exbrkx lda ipoint jmp exbrk addrl ram indirekt-vektor ausführung irq addrl ram indirekt-vektor ausführung "brk" 0105 fea7 ===> ausführung externe subroutine in voreingestellter bank <=== 0106 fea7 0107 OIOB 0109 0110 0111 0112 0113 fea 7 feab fea9 feab fead feae feaf OB 48 a9 Of 85 01 68 28 4c b2 fe exsubf php pha lda #$0f sta i6509 pla plp jmp exsub status retten ac retten segment $f = betriebssytem 6509 indirection register ac zurück status zurück externe subroutine o I H feb2 0 II 5 feb2 0116 feb2 ===> externe Subroutine <=== 0117 feb2 0118 feb2 = exsub 0 II 9 feb2 0120 feb2 08 php 0121 feb3 7B sei 0122 feb4 48 pha 0123 feb5 Ba txa 0124 feb6 48 pha 0125 feb7 9B tya 0126 febb 4B pha 0127 feb9 20, 9 ff jsr ipinit 0128 febc 0129 febd 0130 febf 0131 fec2 0132 fec4 0133 fec6 0134 fec9 0135 feca 0136 fecd 0137 fece 0138 fedo 0139 fed1 0140 fed4 0141 fed6 0142 fed7 0143 fedb OIH fedb 0145 fedc 0146 fedc 0147 fedd OIH fecjf 0149 fee2 0150 fee3 0151 fee5 ab a5 00 20 2a ff a9 04 a2 ff 20 24 ff ba bd 05 01 3B e9 03 48 bd 06 01 e9 00 aa 68 20 24 ff 98 38 e9 04 8(J ff 01 ab a2 04 tay lda e6509 ]Sr putas lda #<excrt2 ldx #>excrt2 jsr putaxs tsx lda $0105,x sec sbc #3 pha lda SOI06,x sbc #00 tax pla jsr putaxs tya excomm sec sbc #04 sta stackp tay ldx #0 4 status retten ac retten xr retten yr retten "ipoint" init., stackvom xfer-seg. laden yr = xfer-segment return-segment auf user-stack ac auf anderen stack xfer-seg. rts routine xfer-seg. rts routine ac, xr auf xfer-seg. stack sp 5 = aktuelle rout. addrl -3 für "jsr dieser rout. ac retten sp+6 = aktuelle rout. addrh xr = addrh ac = addrl ac, xr auf xfer-seg. stack xfer-seg. stack-pointer 4 bytes, yr, xr, ac, sp xfer-seg. neuer stackpointer 4 bytes, yr, xr, ac, sp

hard+soft ass/reass.... seite 0005 anhang-raut. -txramzeile adr. obj.-code source-code 0152 fee5 6B 0153 0154 0155 0156 0157 015B 0159 0160 0161 0162 fee6 fee7 fee9 feea feec feef fefl fef3 fef6 fef7 cb 91 ac ca do f9 ac ff 01 a9 2d a2 ff 20 24 ff 6B 6B 0163 fefb 0164 fefb ba 0165 fef9 Be ff 01 0166 fefc 0167 fefd 016B fefe 0169 feff 0170 ffoi 0171 ff04 0172 ff04 9B aa 9a a5 01 4c f6 ff exsuio pla iny sta (ipointl,y dex bne exsuio ldy stackp lda #<expul2 ldx #>expul2 jsr putaxs pla pla exgbye tsx stx stackp tya tax txs lda i6509 jmp gbye 0173 ff04 ---> rückkehradresse wenn rti' <--- 0174 ff04 0175 ff04 ea nop 0176 ff05 0177 ff05 ---> rückkehradresse wenn rts <--- reg. von stack zu xfer-seg. stack yr = Stackpointer für xfer-seg. addrl register u. rts-adr. vom stack addrh register u. rts-adr. vom stack ac, xr auf xfer-seg. stack lfd. stack-pointer von diesem segment yr = stack-pointer für xfer-seg. neuer stack für xfer-seg. 6509 indirection register good bye 017B ff05 0179 OIBO OIBI OIB2 OIB3 OIB4 OIB5 OIB6 OIB7 OIBB OIB9 0190 0191 ff05 ff06 ff07 ffob ff09 ffoa ffob ffoc ffod ffoe ffll ffl3 ffl6 OB OB 7B 4B Ba 4B 9B 4B ba bd 06 01 B5 01 20 19 ff 4c dc fe excrts php php sei pha txa pha tya pha tsx lda $0106,x sta i6509 jsr ipinit jmp excomm status ac xr yr sp+6 ist return-seg. 6509 indirection register 'ipoint' init, stackvom xfer-seg. 0192 ffl9 0193 ffl9 0194 ffl9 ---> 'ipoint' initialisieren, stack vom xfer-seg. laden <--- 0195 ffl9 ao 01 ipinit ldy #01 84 ad BB B' ac BB b 1 ac 60 sty ipoint+l dey sty ipoint dey lda I ipoint I, y rts addrh ram indirekt-vektor addrl ram indirekt-vektor yr = $ff stack-pointer von $01ff laden 0196 0197 019B 0199 0200 0201 0202 0203 0204 0205 ffl9 fflb ffld ffle ff20 ff21 ff23 ff24 ff24 ff2' ---> ac, xr zu xfer-segment stack <--- 0206 ff24 020 7 ff24 4B 020B ff25 Ba putaxs pha txa ac retten

anhang-raut. -txram- hard+soft ass/reass.... seite 0006 zeile adr. obj.-code source-code 0209 ff26 0210 ff28 0211 ff29 0212 ff2a 91 ac 88 68 sta lipoint),y dey pla 0213 ff2a ---> ac auf anderen stack <--- 0214 ff2a 0215 0216 0217 0218 0219 ff2a ff2c ff2d ff2e ff2e 91 ac 88 60 putas sta lipoint),y dey rts 0220 ff2e ---> register zurück <--- 0221 ff2e 0222 ff2e 68 expull pla 0223 ff2f ab tay 0224 ff30 68 pla 0225 ff31 aa tax 0226 ff32 68 pla 0227 ff33 28 plp 0228 0229 0230 ff34 ff35 ff35 60 rts 0234 ff38 0235 ff38 ea 0236 ff39 nop 0237 ff39 20 a7 fe exbrk jsr exsubf 0238 ff3c 0239 ff3c 20 a7 fe exirq jsr exsubf 0240 ff3f 024 1 0242 0243 ff3f ff3f ff3f excrt2 expul2 excrts-1 expull-1 0244 ff3f 0245 ff3f 0246 ff3f 0247 0248 ff3f ff3f ===> vektor - tabeile <=== 0249 ff3f = $ff6f 0250 ff6f 0251 ff6f 20 a7 fe kvrese jsr exsubf 0252 ff72 0253 ff72 20 a7 fe kipcgo jsr exsubf 0254 ff75 0255 ff75 0256 ff 78 0257 ff78 0258 ff7b 0259 fflb 0260 ff7e 0261 ffle OZ6Z ff81 0263 ff81 0264 ff84 0265 ff84 20 a 7 fe kfunky jsr exsubf 20 a 7 fe kipcrq jsr exsubf 20 a 7 fe kioini jsr exsubf 20 a 7 fe kcint jsr exsubf 20 a 7 fe kalloc jsr exsubf 20 a 7 fe kvecto jsr exsubf addrh = xr ac zurück addrl yr zurück ac xr zurück ac zurück status zurück 0231 ff35 ---> externe interrupt nmi "brk "irq segment $Of <--- 0232 ff35 0233 ff35 20 a7 fe exnmi jsr exsubf ext. nmi in segment $Of ext. brk in segment $0f ext. irq ~n segment $0f netz einlaus reset-vector mon-befehl z umsch. auf coprozessor vector für funktionstasten vector fur ipc-anforderung initialisierung ein-lausgabe initialisierung bildschirm allocation-routine ein-/ausgabe-vector lesen/schreiben

anhang-raut. -txram- hard+soft ass!reass... seite 0007 zeile adr. obj.-code source-code 0266 ff87 0267 ff87 20 a7 fe kresto jsr exsubf 0268 ff8a 0269 ff8a 20 a7 fe klkups jsr exsubf 0270 ff8d 0271 ff8d 20 a7 fe klkupl jsr exsubf 0272 ff90 0273 ff90 20 a7 fe kstmsg jsr exsubf 02 74 ff93 0275 ff93 20 a7 fe ksecnd jsr exsubf 02 76 ff96 0277 ff96 20 a7 fe ktksa jsr exsubf 02 78 ff99 0279 ff99 20 a7 fe kmemtp ]Sr exsubf 0280 ff9c 0281 ff9c 20 a7 fe kmembt jsr exsubf 0282 ff9f 0283 ff9f 20 a7 fe kscnky jsr exsubf 0284 ffa2 0285 0286 0287 0288 0289 0290 0291 0292 0293 0294 0295 0296 0297 0298 0299 0300 0301 ffa2 ffa5 ffa5 ffa8 ffa8 ffab ffab ffae ffae ffb1 ffb 1 ffb4 ffb4 ffb7 ffb7 ffba ffba 20 a7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a7 fe ksetmo jsr exsubf kacptr jsr exsubf kciout jsr exsubf kuntlk jsr exsubf kunlsn jsr exsubf klistn jsr exsubf ktalk jsr exsubf kreast jsr exsubf kstlfs jsr exsubf 0302 ffbd 0303 ffbd 20 a7 fe kstnam jsr exsubf 0304 ffco 0305 ffco 20 a7 fe kopen jsr exsubf 0306 ffc3 0307 0308 0309 ffc3 ffc6 ffc6 0310 ffc9 0311 ffc 9 0312 ffcc 0313 ffcc 03" 0315 0316 ffd2 0317 ffd2 20 a 7 fe 20 a 7 fe 20 a 7 fe 20 a 7 fe ffcf ffcf 20 a7 fe 20 a7 fe kclose jsr exsubf kchkin ]Sr exsubf kckout jsr exsubf kclrch jsr exsubf kbasin jsr exsubf kbsout ]Sr exsubf standard ein-/ausgabe-vectoren setzen geräteadr. Über sekundäradr. suchen geräte-,sek.adr. Über log. file# suchen meldung des operating-syst. ausgeben sekundäradr. nach listen auf iec-bus sekundäradr. nach talk auf iec-bus höchste speichergrenze lesen/schreiben unterste speichergrenze lesen/schreiben tastatur abfragen Zeitüberwachung iec-bus ein ein byte von iec-bus nach accu ein byte aus accu auf iec-bus untalk auf iec-bus ausgeben unlisten auf iec-bus ausgeben listen auf iec-bus ausgeben talk auf iec-bus ausgeben ein/ausgabe-status lesen I schreiben log. file#, geräte-, sek.adr. eintragen länge und adr. des filenamens eintragen log. file öffnen/befehl ausgeben logisches file schliessen eingabekanal öffnen ausgabekanal öffnen ein-/ausgabekanal schliessen eingabe ausgabe char vom akt. kanal in ac char auf akt. kanal

anhang-raut. -txram- hard+soft ass/reass... sei te 0008 zeile adr. obj.-code source-code 0318 ffd5 0319 ffd5 20 a7 fe kload jsr exsubf einlesen vom log. file 0320 ffd8 0321 ffd8 20 a7 fe ksave jsr exsubf abspeichern auf log. file 0322 ffdb 0323 ffdb 20 a7 fe ksttim jsr exsubf interne uhr stellen 0324 ffde 0325 ffde 20 a7 fe krdtim jsr exsubf interne uhr ablesen 0326 ffel 0327 ffel 20 a7 fe kstop jsr exsubf stop-taste lesen 0328 ffe4 0329 ffe4 20 a7 fe kgetin jsr exsubf eingabe I char vom aktiven kanal in ac 0330 ffe7 0331 ffe7 20 a7 fe kclall jsr exsubf alle logischen files schliessen 0332 ffea 0333 ffea 20 a7 fe kudtim jsr exsubf interne uhr bedienen 0334 ffed 0335 ffed 20 a7 fe kscror jsr exsubf bildschirm 0336 fffo 0337 fffo 20 a7 fe kplot jsr exsubf cursor-koordinaten lesen/schreiben 0338 fff3 0339 fff3 20 a7 fe iobase jsr exsubf basisadr. i/o-gerät nach xr/yr 0340 fff6 0341 fff6 0342 fff6 ---> good-bye <--- 0343 fff6 0344 fff6 85 00 gbye sta e6509 execution register 0345 fff8 60 rts 0346 fff9 0347 fff9 ea nop 0348 fffa 0349 fffa 0350 fffa ---> 6509 hardware-vektoren <--- 0351 fffa 0352 fffa 7a fe hanmi.word txnmi ind. sprung nmi-vector (von $fffa I 0353 fffc 0354 fffc 8b 07 hares.ward start system reset routine 0355 fffe 0356 fffe 64 fe hairq.ward txirq interrupt-routine ( irql

label-tabelle label adr. e6509 exbrk ff39 exbrkx fea2 excomm fedc excrt2 ff04 excrts ff05 exgbye fefb exirq ff3c exnmi ff35 expul2 ff2d expull ff2e exsu10 fee5 exsub feb2 exsubf fea 7 gbye fff6 hairq fffe hanmi fffa hares fffc i6509 0001 iobase fff3 ipinit ff79 ipoint OOac kacptr ffa5 kalloc ffb 7 kbasin ffcf kbsout ffd2 kchkin ffc6 kcint ff7e kciout ffab kckout ffc9 kclall ffe 7 kclose ffc3 kclrch ffcc kfunky ff75 kgetin ffe4 kioini ff7b kipcgo ff72 kipcrq ff78 klistn ffb1 klkupl ffbd klkups ffba kload ffd5 kmembt ff9c kmemtp ff99 kopen ffco kplot fffo krdtim ffde kreast ffb7 kresto ff87 ksave ffd8 kscnky ff9f kscror ffed ksecnd ff93 ksetmo ffa2 kstlfs ffba kstmsg ff90 kstnam ffbd kstop ffe7 ksttim ffdb ktalk ffb4 ktksa ff96 kudtim ffea kunlsn ffae kuntlk ffab kvecto ff84 kvrese ff6f putas ff2a putaxs ff24 stackp 0 1ff start 078b start7 078d tex 07b0 text 07a2 txirq fe64 txirq2 fe99 txnmi fe7a assemblierung ende

2. Beschreibung der RS 232 C - Schnittstelle 2.1 Allgemeines Die Rechner CBM 600/700 sind u. a. standardmäßig mit einer Schnittstelle ausgerüstet, die unter den Namen 'RS 232 C' bzw. 'V. 24' bekannt ist. Diese Bezeichnungen haben ihren Ursprung in der Nomenklatur der Institute, welche diese Schnittstellen normten. Im amerikanischen Sprachraum ist dies die 'EIA' ( Electronic Industries Association) für 'RS 232', in Europa ist es das 'CCITT' (Commitee Consultative Internationale de Telephone et Telegraphe) für V. 24. In der BRD sind die Empfehlungen deser Schnittstelle in der DIN 66020 genormt. Die Schnittstelle arbeitet asynchron und seriell. Seriell bedeutet, daß alle Informationen Bit für Bit übertragen werden. Asynchron bedeutet hierbei, daß die Übertragungsleitung, wenn keine Information zu übermitteln ist, auf einem bestimmten logischen Pegel gehalten wird; ganz im Gegensatz zur synchronen Datenübertragung, bei der ständig ein Füllbyte auf der Leitung gesendet wird. Im seriellen Datenformat wird bei der Übertragung eines Byte zuerst ein Start Bit gesendet, dann die Informations-Bits (LSB zuerst), eventuell ein Paritäts Bit und ein oder zwei Stop-Bits. Da die Datenleitung im Grundzustand (d.h. wenn keine Information zu übertagen ist I im logischen Zustand 'high ist, muß das Start-Bit ein logisches 'low sein. An diesem Wechsel des Leitungspegels erkennt der Empfänger den Anfang einer Informationseinheit und synchronisiert sich selbst darauf. Der Zustand eines Stop-Bit ist logisch 'high', also gleich dem Grundzustand der Übertragungsleitung. Die besprochene Schnittstelle wird benutzt, um Peripheriegeräte zu bedienen oder zur Kommunikation mit anderen Rechnern über Modem. Im Hinblick auf die Datenfernübertragung mittels Modem ist die Schnittstelle so ausgelegt, dab ein Rechner CBM 600/700 als Datenterminal (Daten-Endeinrichtung) zu interpretieren ist. 2.2 BASIC 4.0 und RS 232 C Die RS 232 C-Schnittstelle kann mit den normalen BASIC 4.0 Befehlen angesprochen werden; lediglich beim Eröffnen diesen Datenkanals sind einige Spezifikationen zu beachten. Es ist damit ein komfortables Handhaben gewährleistet. Das Eröffnen geschieht mit dem BASIC-Befehl: open lu,pa,sa,fp' lu pa sa fp Logical unit, logische Adresse Primäradresse- für die RS 232 C-Schnittstelle = '2' Sekundäradresse - gibt die Übertragungsrichtung an File-Parameter - ein vier Byte langer Character-String, er enthält Angaben über Obertragungsgeschwindigkeit, Parität und Wortlänge

2.2.1 Sekundäradresse sa Oie Sekundäradresse ist entsprechend der folgenden Tabelle anzugeben: sa 1: Rechner sendet nur, kein Datenempfang (z.b. Druckerausgabel sa 2: Rechner empfängt nur, kein Senden (z.b. HeBwerterfassungl sa 3: Rechner sendet und empfängt Daten lz.b. Rechnerkommunikationl Da der Zeichencode der CBH-Rechner (CBH-ASCIIl in einigen Punkten von der ASCII Norm abweicht, ist aus Kompatibilitätsgründen mit anderen Systemen vorgesehen, eine Code-Wandlung vorzunehmen. Bei der Ausgabe wird dadurch das CBH-ASCII in Standard-ASCII umgewandelt, beim Empfang entsprechend von Standard-ASCII in CBH ASCII. Wird diese Konvertierung gewünscht, so ist der Wert der Sekundäradresse um 128 zu erhöhen. So ist z.b. als "sa" bei bidirektionalem Datenverkehr mit Code-Wandlung der Wert "131" (3+128) anzugeben. 2.2.2 File-Parameter "fp" Die File-Parameter bestehen aus einem 4 Byte langen Character-String. Wichtig sind die ersten beiden Bytes, die letzten beiden spielen eine untergeordnete Rolle, müssen jedoch angegeben werden. Zunächst die Bedeutung des ersten Byte, mit dem stärksten lnformationsgehalt. Es sind dort die Angaben über die Übertragungsgeschwindigkeit, Anzahl der Stop-Bi ts, sowie die Wortlänge enthalten. Den folgenden drei Tabellen ist jeweils der betreffende Wert zu entnehmen und diese drei Werte zu addieren. Der so ermittelte Wert stellt das erste Byte des Character-Strings dar. 1.Byte lfp) Tabelle Übertragungsgeschwindigkeit Übertragungsgeschw. Wert 16 Takt el<tern 50 Baud 17 75 Baud 18 109,92 Baud 19 134.58 Baud 20 150 Baud 21 300 Baud 22 600 Baud 23 1200 Baud 24 1800 Baud 25 2400 Baud 26 3600 Baud 27 4800 Baud 28 7200 Baud 29 9600 Baud 30 19200 Baud 31 (nur bei Empfang zulässig) 1.Byte (fp) Tabelle Wortlänge Wortlänge Bit Bit Bit Bit Wert 0 32 64 96

!.Byte lfpl Tabelle Stop-Bits Anzahl Stop-Bits wert 0!falls Wortlinge = 8 mit Paritit 128 1,5 (nur bei Wortlänge 5 ohne Parität 128 2 128 2.Byte lfdi Das zweite Byte baut sich nach einem ihnliehen Huster auf. Es wird aus zwei Tabellen errechnet. Um eine vollständige Leistungsbeschreibung zu bieten, wiren fünf Tabellen notwendig. Die letzten drei sind nur für Sonderfälle vorgesehen. Es ist dazu ein umfassendes Verständnis des Betriebssystems, der Hardware des Rechners und der Datenübertragung Voraussetzung. Die Tabellen sind in der Folge der Vollständigkeit wegen aufgeführt; der BASIC-Benutzer sollte sie aber ignorieren. Der Wert des 2.Bytes ermittelt sich demnach aus der Summe jeweils eines Wertes aus den beiden folgenden Tabellen: 2.Byte lfp) Hodus Tabelle Hodus Wert Normal 0 Echo 16 lnur Betriebsart Empfang) Der Hodus "Echo' bewirkt, daß die Daten, die der Rechner empfingt, sofort wieder an den Sender zurückgesendet werden, um dort die richtige Datenübermittlung zu kontrollieren (Duplexbetrieb). 2.Byte (fp) Tabelle Parität Parität Empfangen Senden Wert keine keine 0 ungerade ungerade 32 gerade gerade 96 keine mark I log. 1) 160 keine space (log. 0) 224 2.Byte (fp) Zustand Tabelle Data Terminal Ready (unwichtig) Wert Blockieren Sendan/Empfangen Freigeben Senden/Empfangen 0 (Oefaultl

2.Byte (fpl Interrupt Tabelle Interrupt freigeben (unwichtig) Wert Freigeben IRQ (Bit 0 Status) Sperren IRQ 0 ( Default l 2.Byte (fpl Tabelle Sendekontrolle (unwichtig) Sendeunterbrechung (not RTS) Zusatz Wert Blockiert Freigegeben Blockiert Blockiert high low low low Sende:BRK 0 4 8 16 ( Default l 2.3 Statusvariable Zur Kontrolle der Datenübertragung steht die Systemvariable "ST" zur Verfügung. Der Inhalt dieser Variablen hat folgende Bedeutung: Status Bedeutung 0 alles in Ordnung Paritätsfehler (nur beim Lesen! l Formatfehler (nur beim Lesen. z.b. falsche wortlingel Datenverlust (nur beim Lesen, die Daten werden schneller angeliefert, als sie ausgelesen wurden 16 Eingabepuffer leer (nur beim Lesen, beim letzten getl war noch kein gültiges Zeichen im Puffer 32 Fehler bei "Data Carrier Detect" 64 Fehler bei "Data Set Ready" Unter Umständen können mehrere Fehler gleichzeitig auftreten. In diesem Fall sind die einzelnen Fehlermeldungen auszufiltern IBitweises zerlegen der Statusvariablen). Die nun richtig eröffnete RS 232 (-Schnittstelle kann mit den normalen BASIC Befehlen gehandhabt werden (getl, printl, inputl). Dar Befehl inputl" sollte jedoch mit Vorsicht verwendet werden, da dieser Befehl am Ende der Zeicheneingabe ein carriage Return = chr$(13) erwartet. Trifft dieses Zeichen nicht ein, so bleibt der Rechner in der Input-Schleife hängen. Han sollte diesen Befehl nur dann verwenden, wenn das Eintreffen des "Carriage Return mit Sicherheit gewährleistet ist. ACHTUNG: Beim ersten Auslesen der Variablen ST wird ihr Wert auf null zurückgesetzt. Soll die Statusvariable später noch verwendet werden, so ist ihr Wert einer anderen Variablen zuzuweisen (kopieren).

In a ein 2~4 Hardware RS 232 C Die RS 232 (-Schnittstelle wird von dem Baustein 'ACIA 6551' = Asynchronaus Communication Interface Adapter bedient I diese111 IC ist u I I Baudratengenerator integriert, welcher Übertragungsraten von 50 bis 19.200 Baud ermöglicht. Bei Verwendung eines ekternen Taktes können in der Betriebsart 'Empfangen' nicht standardisierte Übertragungsgaschw. bis zu 125.000 Baud erreicht warden. Der Baustein besitzt neben seinen internen Registern fünf weitere, von außen erreichbare, Register. Es sind dies: Register Receiver - Register Transmitter - Register Status - Register Control - Register Command - Register Adruu hek SDDOO SDDOO $DD01 $DD02 $DD03 Adresse dez. 56576 56576 56577 56578 56579 Über das Receiver-Register werden Daten eingelesen (lesender Zugriff), über das Transmitter-Register werden Daten gesendet (schreibender Zugriff l. Das Status Register übermittelt dem Benutzer durch Setzen der einzelnen Bits den Status des 6551-Baustains. Im Control-Registar ist der gewünschte Modus, wie Baud-Rate, Stop-Bit, Wortlinge sowie ekterner Takt, durch Setzen oder Löschen der einzelnen Bits, festgelegt. Im Command-Register werden die gewünschten Übertragungsmodes, wie Parität, Normal und Echo ect, festgelegt. Für eine ausführliche Beschreibung entnehmen Sie bitte die Daten dem '6551 Datenblatt'. An der RS 232 (-Schnittstelle werden 10 Anschlüsse ausgewertet. Die Verbindung Rechner/Peripherie erfolgt über eine 25-polige Cannon-Buchse (Weibchen), Die verwendeten Anschlüsse sind im folgenden nochmals in einer Tabelle dokumentiert. Pin CCITT EIA DIN Cannon V.24 RS232 66020 CBH Bez. Beschreibung 3 4 5 6 7 20 24 101 103 104 105 106 107 102 109 10812 113 AA BA BB CA CB cc AB CF CD DA E1 D1 D2 52 H2 H1 E2 H5 51.2 T1 protgnd TKD RKD RTS CTS/RFS DSR sig.gnd DCD DTR RKC Schutzerde, gemeinsame Hasse Sendedaten: Ltg. für abgehende Daten Empfangsdaten: Ltg. ankommende Daten Sendeteil ein: Hitteilung zum Modem, Daten sollen gesendet werden Sendebereit: Antwort des Modems auf RTS Betriebsbereit: Hitteilung des Modems ankommende Daten zu übernehmen Signalerde, Betriebserde Empfangssignalpegel: Hitteilung des Modems, Daten auf der Leitung Terminal betriebsbereit: Hitteilung an Modem, Datenempfangsbereit Takt für ekt. Takt (nur Empfang) Die Rechner CBH 600/700 erwarten an allen beschalteten Anschlüssen den richtigen logischen Pegel. Eine Ausnahme ist 'RKC' = Pin24. Er wird nur ausgewertet, wenn der ekterne Takt beim Eröffnen der Datenübertragungsleitung ausdrücklich erwünscht wird (näheres im vorherigen Kapitel 'Obertragungsgeschwindigkeit' ). Da es sehr häufig vorkommt, daß das an den Rechner anzuschliessenda Gerät nicht alle bedienten Anschlüsse auswertet und beantwortet, können zur Funktion folgende Lötbrücken am Stecker des Verbindungskabels hergestellt werden: Anschlüsse '4 Anschlüsse '6 RTS' mit '5 DSR' mit 'B crs verbinden und DCD' und '2D = DTR' verbinden

CBM 600 und 700 Speicheraufteilung $FFFF Segment 15 = $0F Operating - System (Kernal) gk Segment 1-4 $EOOO $0FOO $0EOO $ $0COO $0BOO $0AOO $0900 $0800 $ $COOO $AOOO $8000 $6000 $4000 $2000 $1000 $0800 $0002 $0001 $ _ ---~~..I.a.ll.wt--- ----.. ä.l,eß.1 8 ---- --"'G;rr JW _R~2.ll.------...!.E~ ~8_L J!1~2!:.t E~._E.o.U.:...C.2er~wqr:;~a.I:.I!_ - 22.,8L ~u.!!.si ~~wt- Jlll<~t~b.!U:e..:ish..J ~Ul.... 4.i,~RLC!2Jllc.g_l~,r---- 2K Bildschirm RAM -------------- nicht benutzt t1 r. BASIC ROM Hi 7:k. r--------------- BASIC ROM Lo '6K Cartridge ROM/RAM S/< (Bank 3) Cartridge ROM/RAM (Bank 2)!> K Cartridge ROM/RAM ( ~ (Bank l) 2K 4K Oisk ROM ext. Buffer RAM 2K RAM Indirekt Segment Bank Execute Segment Bank I I I I I I I.s:: u ~..._ QJ QJ CO I I I I I I I """ I ~ +' c: QJ E QJ "" oj') II 0 N...... 0 N :a:"' <:::E eo::co I u E QJN -:;:1 >o~ "'+> c: QJ E QJ "" oj') 0 II ~...... 0 ~.., ::E CO u

3.1 Speicheraufteilung Bei den Geriten der Serie CBH 600/700 ist der gesamte adressierbare Speicherbereich in 16 Segmente "Banks" unterteilt. Jedes Segment umfabt einen Adressraum von 64 K-Byte. Der eingebaute Hicroprozenor 6509 kann 16 solcher Segmente!Bank 0-151 verwalten. Es sind also 16 * 64 K-Byte = 1 H-Byte adressierbar. Unter BASIC haben einige Segmente. abhingig vom Ausbau. eine feste Bedeutung: Modell Ausbau Segment 1 Segment 2 Segment 4 CBH 610/710 128 K-Byte BASIC-TaKt alle Variable CBH 620/720 256 K-Byte BASIC-TaKt Feld-Variable einf. Variable Strings CBH 730 256 K-Byte BASIC-TaKt Feld-Variable einf. Variable Strings Oisk-Betriebssyst: Im Segment 15 befinden sich bei allen Modellen die Betriebssystem ROHs des Typs "2364 A' bzw. EPROHs '2764 A' (8 K-Bytel mit BASIC-Interpreter, Editor, Operatingsystem. Monitor, sowie das Bildschirm-RAH, das System-RAH!Zero-Page, Stack usw.l und die Adressen der Eingabe/Ausgabe-Bausteine. In einem weiteren Adressbereich ist Platz für das Disk-Betriebssystem!CBH 7301 reserviert. Die restlichen Adressen lind über den spiter beschriebenen Cartridge-AnschluB nach außen geführt. Die restlichen freien Segmente sind über die eingebaute 'EKpansion Schnittstelle" extern mit RAH-Speicher belegbar. Oie einzelnen eingebauten RAH-Segmente sind mit 8 dynamischen RAH-Bausteinen '4864' aufgebaut. Jedes dieser RAHs hat eine Kapazitit von 64 K-Bit, 8 RAHs mit 64K-Bit parallel ergeben 64 K-Byte. Für das Systemsegment-RAH wird ein statischer RAH-Baustein '2016' mit 2 K-Byte verwendet IZero-Pege, Stackl. Die folgende grafische Obersicht gibt Ihnen eine zusanvnenfasaende Information über die Speicheraufteilung in den &eriten der Serien 600 und 700.

3.2 ROH/RAH - Cartridge Oie Geräte der Serien CBH 600/700 verfügen an der Geräterückseite über einen Anschluß für Steckmodule. Es lassen sich damit zusätzlich noch 24K-Byte ROH/RAH /Eprom/10 in das Segment $OF = Bank 15 einfügen. Wie bei den Geräten VC-20 und VC-64 besteht die Möglichkeit, einen Autostart des Modulprogramms durchzuführen. Nach dem Errichten des Stacks und dem Test, ob ein Reset' vorliegt (kein Kaltstart), wird nach dem Einschalten des Rechners der Bildschirm-Controller initialisiert. Dies ist notwendig um beim CBH 700 eine Beschädigung des Video-Teils zu vermeiden. Danach erfolgt die Prüfung ob ein Autostart-ROH eingesetzt ist. Das Operating-System (Kernall untersucht an den 4k-Byte-Grenzen '$1000 bis $8000' im Segment $0F (Bank 15) ob folgende Daten vorhanden sind: Adresse $X006 $X007 $X008 $X009 Wert c $C2 $CO "><' Bedeutung he>< $43='c' oder $C3='C' bei Standardinit. ASCII 'B' ASCII "H' '><' steht für 4K-Byte-Block 1-8 $30-$38 Werden beim Test diese Daten gefunden, dann enthalten die Speicherstellen $XOOO bis $X002 einen JHP $XXXX auf das Anwenderprogramm. Es erfolgt ein Autostart. Soll das Betriebssystem vor dem Starten des ROH-Programms eine normale Initialisierung durchführen, dann muß in der Speicherstelle $X006 der Wert c +$80 stehen (höchstes Bit gesetzt). Der jeweilige Warmstart-Einsprung ist $XOOJ. Hier steht ein JHP $XXXX auf das Anwenderprogramm. Wie in der Speicheraufteilung ersichtlich, liegen die eingebauten BASIC-ROMs von $8000 aufwärts. Die Sequenz für BASIC ab $8006 ist $C3, $C2, $CO, $38. Sind Floppy-Laufwerke eingebaut, so übernimmt das eingebaute Oisk- ROH (ab Adresse $1000) die System-Kontrolle. Sind kein Autostart- und keine BASIC-ROMs vorhanden, meldet sich der Rechner mit dem Maschinensprache-Monitor. Allgemeiner Hinweis: Oie Geräte CBH 600/700 verfügen über einen hardwaremäßig erzeugten Cursor. Das Blinken des Cursors ist deshalb kein Beweis für einen 'lebenden Rechner. Das heißt, der Rechner kann trotz blinkendem Cursor abgestürzt sein. Es muß danach ein Reset (Knopf an dar Geräterückseite l durchgeführt werden. Dies gilt nicht für die Rechner CBH 8000.

3.3 Steckerbelegungen c:::================== 3. 3. 1 IEEE 5tecker Pin Bez. Baustein intern Adresse dez. ---------------------------------------------------- 1 01 CIA 6526 PRA 0 $0COO 56320 2 02 CIA 6526 PRA 1 $OCOO 56320 3 03 CIA 6526 PRA 2 $OCOO 56320 4 04 CIA 6526 PRA 3 $OCOO 56320 5 EOI TPI 6525 PRA 5 $0EOO 56832 OAV TPI 6525 PRA $0EOO 56832 7 NRFO TPI 6525 PRA $0EOO 56832 8 NOAC TPI 6525 PRA 6 $0EOO 56832 IFC TPI 6525 PRB 0 $OE01 56833 10 SRQ TPI 6525 PRO 1 $0E01 56833 11 ATN TPI 6525 PRA $0EOO 56832 12 prot.gno (Schutzerde, gemeinsame Hasse) A 05 CIA 6526 PRA 4 $OCOO 56320 B 06 CIA 6526 PRA 5 $0COO 56320 c 07 CIA 6526 PRA 6 $0COO 56320 0 08 CIA 6526 PRA $OCOO 56320 E REN TPI 6525 PRA 2 $0EOO 56832 F-N GNO 3.3.2 Keyboard 5tecker Pin Bez. Baustein intern Adresse dez. ---------------------------------------------------- PAO TPI 6525 PRA 0 $OFOO 57088 PA2 TPI 6525 PRA 2 $0FOO 57088 PA4 TPI 6525 PRA $0FOO 57088 4 PA6 TPI 6525 PRA 6 $OFOO 57088 5 PBO TPI 6525 PRB 0 $0F01 57089 6 PB1 TPI 6525 PRB $OF01 57089 7 PB2 TPI 6525 PRB $OF01 57089 PB3 TPI 6525 PRB $OF01 57089 9 PB4 TPI 6525 PRB 4 $OF01 57089 10 PB5 TPI 6525 PRB 5 $0F01 57089 11 PB6 TPI 6525 PRB 6 $OF01 57089 12 PB7 TPI 6525 PR8 $OF01 57089 13 PC5 TPI 6525 PRC 5 $OF02 57090 14 PA1 TPI 6525 PRA $0FOO 57088 15 PA3 TPI 6525 PRA 3 $0FOO 57088 16 PA5 TPI 6525 PRA 5 $0FOO 57088 17 PA7 TPI 6525 PRA 7 $0FOO 57088 18 PCO TPI 6525 PRC 0 $0F02 57090 19 PC1 TPI 6525 PRC 1 $OF02 57090 20 PC2 TPI 6525 PRC 2 $OF02 57090 21 PC3 TPI 6525 PRC 3 $0F02 57090 22 GNO 23 GNO 24 GNO 25 PC4 TPI 6525 PRC 4 $OF02 57090

3.3.3 Cartridge Stecker Pin Bezeichnung AO 2 Al A2 A3 s A4 6 AS 1 A6 8 A7 9 A8 10 A9 11 A10 12 A11 13 A12 14 + SV DC 1S + SV DC A BDO B BD1 c BD2 D BD3 E BD4 F BDS H BD6 J BD7 K GND L GND H S R/W N S02 p NOT CSBANK 1 R NOT CSBANK 2 s NOT CSBANK Adressbit 0 Adressbit 1 Adressbit 2 Adressbit 3 Adressbit Adressbit s Adressbit 6 Adressbit 1 Adressbit Adressbit 9 Adressbit 10 Adressbit 11 Adressbit 12 Spannung + SV Spannung + SV Datenbit Datenbit 1 Datenbit 2 Datenbit 3 Datenbit 4 Datenbit s Datenbit 6 Datenbit 1 Hasse Hasse Hodus Read/Write Takt phi 2 Chip Select Bank (Segment 15) Chip Select Bank (Segment 15) Chip Select Bank (Segment 15) 3.3.4 Video Stecker Pin 1 2 5 6 1 Bezeichnung VIDEO GND VERTICAL SYNC GND HORIZONTAL SYNC KEY GND Videosignal Hasse Vertikal-Synchronisation Hasse Horizontal-Synchronisation Lichtgriffel Hasse

3.3.5 User Stecker Pin Bez. Baustein intern Adresse dez. GND PB2 TPI 6525 PRB 2 $DE01 56833 GND PB3 TPI 6525 PRB $0E01 56833 NOT PC CIA 6526 -PC (Handshake PRB I/0, Output) 6 NOT FL Cass-Read -FLAG (Interrupt, Input) 207 CIA 6526 PRB 7 $0C01 56321 206 CIA 6526 PRB 6 $DC01 56321 9 205 CIA 6526 PRB 5 $0C01 56321 10 204 CIA 6526 PRB 4 $0C01 56321 11 203 CIA 6526 PRB $0C01 56321 12 202 CIA 6526 PRB $OC01 56321 13 201 CIA 6526 PRB $OC01 56321 14 200 CIA 6526 PRB 0 $0C01 56321 15 107 CIA 6526 PRA 7 $0COO 56320 16 106 CIA 6526 PRA 6 $0COO 56320 17 105 CIA 6526 PRA 5 $0COO 56320 18 104 CIA 6526 PRA $0COO 56320 19 103 CIA 6526 PRA 3 $0COO 56320 20 102 CIA 6526 PRA $0COO 56320 21 101 CIA 6526 PRA 1 $0COO 56320 22 100 CIA 6526 PRA 0 $0COO 56320 23 NOT CNT CIA 6526 -CNT $0C04 56324 (Takt von Timer AI $0C05 56325 24 + 5V OC 25 NOT IRQ TPI 6525 PRC $0E02 56834 26 SP CIA 6526 SP ( Serial Port 1/01 3.3.6 Audio Stecker Pin Bezeichnung -------------------------------- Lautsprecher ( 8 Ohm I unbenutzt Lautsprecher ( 8 Ohm) 3. 3. 7 Soannynas-Stecker Pin Bezeichnung ---------------------- 50 Hertz - 12V DC + 12V DC GNO Hasse GNO Hasse + 5V DC

3.3 8 Co-prgzessor Stecker 3.3.9 RS 232 c Stecktr Pin Bezeichnung Pin Bezeichnung ---------------------------- ------------------------- 1 EXTHA3 1 prot. GND 2 DRAHDO 2 T><D 3 EXTHA2 3 RxD 4 DRAHD1 4 RTS 5 EXTHA7 5 CTS 6 DRAHD2 & DSR 7 EXTHA6 GND 8 DRAHDJ DCD 9 EXTHA5 9 unbenutzt 10 DRAHD4 10 unbenutzt 11 EXTHA4 11 + 5V DC 12 DRAHD5 12-12V DC 13 EXTHA1 13 unbenutzt 14 DRAHD6 14 unbenutzt t 15 EXTHAO 15 unbenutzt 16 DRAHD7 16 unbenutzt 17 GND 17 unbenutzt 18 GND 18 unbenutzt 19 GND 19 unbenutzt 20 &ND 20 DTR 21 GND 21 unbenutzt 22 NOT BUSY 1 22 unbenutzt 23 GND 23 unbenutzt 24 NOT P2 REF REQ 24 R><C 25 GND 25 unbenutzt 26 NOT P2 REF GRNT 27 GND 28 BPD 29 GND 30 BP1 31 GND 32 BP2 33 unbenutzt J4 BP3 35 NOT PROCRES 3& NOT BUSY 2 37 EXTBUF R/W 38 NOT ERAS 39 DRAH R/W 40 NOT ECAS

J.J.!O ExPansion Stecker Pin Dez. Baustein intern Adresse dez. 1-4 + SV OC 5-10 GND!1 12 NOT BRAS IRQ J 1 J - 12V OC!4 15 NOT EXTRES + 12V DC!6 17 18 19 20 21 22 23 24 25 S02 26 NOT BCAS 27 SO! 28 NOT CS 1 29 BDJ JD NOT EXTPRTCS J 1 804 32 BD2 JJ 805 34 BOl 35 B07 36 BOO 37 BA!J 38 806 39 BA 14 40 BA15 4 1 BA! 42 BAO 43 BA2 44 BA 11 45 BAJ 46 BA!O 47 BA12 48 BA4 49 BA9 50 BA5 51 BA8 52 BA6 53 BPO 54 BA7 55 BP! 56 BP2 57 NOT NM! 58 BPJ 59 ROY 60 NOT IRQ TPI 6525 NOT SO CPU 6509 NOT RES LPEN CRT 6845 S R/W NOT EXTBUFCS TODCLK NOT DISCROMCS BDOTCLK unbenutzt CPU 6509 CPU 6509 CPU 6509 DRAM: Row Access PRC J $0ED2 Reset-Ourchla8 so System Reset Light Pen, Lichtgriffel System Read/Write Adresse: $0800-SOFFF Takt 50 Hertz Adresse: $1000-$1FFF Takt 18 MHz 56834 Takt phi 2 DRAM: Column Access Takt phi 1 Adresse: $0900-$09FF Datenbit Adresse: $0B00-$0BFF Datenbit 4 Datenbit 2 Datenbit Datenbit Datenbit 7 Datenbit 0 Adressbit 13 Datenbit 6 Adressbit 14 Adressbit 15 Adressbit Adressbit Adressbit Adressbit 11 Adressbit J Adressbit 10 Adressbit 12 Adressbit Adressbit 9 Adressbit 5 Adressbit 8 Adressbit 6 Bank 0 (Segment 0) Adressbit 7 Bank 1 (Segment 1) Bank 2 (Segment 2) Nicht maskierter Interrupt Bank J (Segment J) Ready Interrupt Request

4. TE I L ASSEHBLERLISTING C B H 6 1 0 I 7 1 0 B A S I C 4. 0

b710bas.lib.... seite 0001 zeile adr. obj.-code source-code pass 1 0004.lib b710bas.lab 0224.lib b710bas. con 0319.lib tolcens 0850 8550.lib contrl 1587 B98d.lib bverbsl 2418 8e7a.lib bverbs2 3157 92a1.lib bverbs3 3570 9585.lib mathl 4469 9af5.lib math2 5308 9fca.lib math3 5801 1280.lib math4 6570 a7c0.lib strngl 7001..,..lib strng2 7810 af9a.lib delete 7897 b026.lib using 8538 b4b8.lib butes 1 9117 b7bf.lib butes2 9616 ba93.lib init 9804 bbdd.lib syscal pass 2 0001 610/710 library-file 0002 0003 0004.lib b710bas.lab

610/710 basie label-def. hard+soft ass/reass...... seite 0002 zeile adr. obj.-eode souree-eode 0006 0007 0008 0009 0010 0011 0012 0013 OOH 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0021 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 OOH 0045 0046 OOH 0048 oou 0050 0051 0052 0053 0054 0055 0056 0057 0058 ===> externe zero-page-label <=== e6509 $00 i6509 $01 usrpok $02 tmhour $05 tmmin $06 tmsee $01 tmten $08 form $09 eharae $Oe endehr $0d count $Oe xcnt $0f dimflg $10 valtyp $11 intflg $12 dores $13 subflg $ H inpflg $15 dsdesc $16 channl $Ia linnum Slb temmpt $1d lastpt tempst indexl index2 resho resmoh resmo reslo txttab txtend vartab arytab aryend strend fretop frespe memtop curlin oldlin oldtxt datlin datptr inpptr varnam varpnt lstpnt opptr opmask Sie $20 $22 $25 $28 $29 $2a $2b $2d $2f $31 $35 $37 $39 $3b $3d $3f $42 $H $46 $49 $4b $4d $H $51 $54 $51 $5a 6509 exeeution register 6509 indireetion register jmp code für user-routine zeit stunden für ti$-bereehnung zeit minuten für ti$-bereehnung zeit sekunden für ti$-bereehnung zeit II 10-sek. für ti$-berechnung addrl format-zeiger puffer für trennzeichen puffer für trennzeichen allgemeiner zähler dos loop-zähler dim-flag für zeigersuche auf variable flag für variablen typ /O=num, I =stringl flag für integer-variable flag für token o. ascii/garbage-flag flag für indizierte variable flag für eingabe /input,get,read) länge disc-status string speieherstelle für aktiven kanal lo-byte akt. Zeilennummer zeiger auf zeitw. stringdescriptor I rel. offset J addrl letzt benutzter string-descr. addrl für 3 temp. string-descriptoren addrl indirekter index II addrl indirekter index 12 Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division addrl zeiger anfang basic-text addrl zeiger ende basic-text addrl zeiger anfang einfache variable addrl zeiger anfang array-tabelle addrl zeiger ende array-tabelle addrl ende benutzter ram-bereich addrl top of string free space addrl zeiger auf neuen string addrl höchste ram-speicherstelle lo-byte akt. zeilennummer lo-byte vorige Zeilennummer lstopj addrl zeiger letzter basic-befehl addrl data-zeilennummer addrl zeiger auf data nach read" addrl input-zeilennummer erstes zeichen akt. Variablenname addrl Zeiger auf variable im ram addrl zeiger letzter string addrl zeiger akt. operator-routine vom akt. operator erzeugte bit-maske

610/710 basic label-def. hard+soft ass/reass.... seite 0003 zeile adr. obj.-code source-code 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 OOH 0075 0076 0077 0078 0079 00811 0081 0082 0083 0084 0085 0086 0087 0088 defpnt dscpnt jmper highds hightr lowds lowtr dsctmp facexp facho facmoh facmo faclo facsgn sgnflg bits argexp argho argmoh argmo arglo argsgn arisgn facov fbufpt txtptr buffpt parsts $5b $5e $61 $64 $67 $6a $6d $70 $11 $72 $73 $14 $75 $76 $77 $78 $79 $7a $7b $7c $7d $7e $7f $80 $82 $85 $88 $8b addrl zeiger funkt.-def./ temp.facl3 addrl zeiger string descr./temp.facl3 $4c wert für 'jmp {functions-rout.l addrl zielende {verschieben!/ temp. facll addrl ursprungende lverschiebenl/ temp.facll addrl zielanfang lverschiebenll temp.facl2 addrl ursprunganfang {verschieben)/ temp.facl2 zeitweise descriptoren-ablage fac II: exponent fac II: mantisse fac II: mantisse fac II: mantisse fac II: mantisse fac II: vorzeichen fac II: Vorzeichenduplikat shift-zähler fac-arg ungepackt: exponent fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: vorzeichen fac-arg ungepackt: Vorzeichenduplikat fac overflow-byte addrl zeiger fac-puffer lfout-rout.l addrl zeiger auf akt. term addrl zeiger auf eingabe-puffer das analyse-byte 0089 ---> bitbedeutung von das analyse-byte I <--- 0090 0091 bi t 7 klammeraffe in dateiname gelesen 0092 bit 6 w oder 'l' gelesen 0093 bit 5 2. laufwerk I gelesen 0094 bit I. laufwerk I gelesen 0095 bit 3 geräte I gelesen 0096 bit 2 logische file I gelesen 0097 0098 bit bit 0 2. dateiname gelesen I. dateinamegelesen 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 0110 parstx = $8c das analyse-byte 2 ---> bitbedeutung von das analyse-flag 2 <--- bit 7 bit 6 bit 5 bit bit 3 bit 2 bit unbenutzt unbenutzt unbenutzt unbenutzt unbenutzt dos-offset hi gelesen dos-offset lo gelesen

610/110 basic 1abe1-def. hard+soft ass/reass... seite 0004 zeile adr. obj.-code source-code 0Jf1 Off I 0Jf3 0114 0115 0116 0111 0118 0119 0110 0111 0122 0113 0114 0125 0126 0111 0128 0119 0130 0131 0132 0133 0134 0135 0136 0137 0138 0139 0140 0141 0142 0143 0144 0145 0146 0147 0148 0149 0150 0151 0152 0153 0154 0155 0156 0157 0158 0159 0160 0161 0162 0163 0164 0100 bit 0 dos-bank gelesen seedpt $8d errnum $8f ::s> externe ram-label <=== stack buf dosffl dosdsl dosffa dosfbl dosf21 dosds2 dosf2a dosfb2 dosbnk dosofl dosofh dosla dosfa dossa dosrcl dosdid didchk dosstr trmpos eormsk dfbank dolu tansgn ldaabs ldaadr hulp bnr enr dolr flag swe usgn uexp vn chsn llf nf posp fesp etof cform sno blfd begfd $0100 $0200 $0210 $021 I $0212 $0214 $0215 $0216 $0217 $0219 $021a $021b $021d $02" $0220 $0221 $0222 $0223 $0225 $0226 $0155 $0256 $0257 $0258 $0259 $0251 $025b $025e $025f $0260 $0261 $0262 $0263 $0264 $0265 $0266 $0267 $0268 $0269 $0261 $026b $02&c $026d $026e $026f $0270 addrl zeiger auf akt. Zufallszahl fehlernu.mer für 'trap 6509 cpu-stack basic input-puffer l-$2ff} dos Filename I lange dos disk drive I addrl dos filename I bank dos Filename 1 dos Filename 2 länge dos disk drive I addrl do1 Filename 2 bank do1 Filename 2 dos bank nummer addrl dos offset untergrenze lbsave,bloadl addrl dos offset obergrenze lbsave,bloadl dos logische adresse dos primir-adresse dos sekundär-adressa dos record-länge dos erstes zeichen 'id' dos did flag dos ausgebe string puffer cursor spalte auf bildschirm bitmaskefür wait' vorgebe für bank-nummer vorgabe für ausgabe-adresse flag für 'tan vorzeichen lda abs routine addrl modifiable adresse print using: zähler print using: zeiger auf beginn print using: zeiger auf ende print using: doller flag print using: komme flag print using: zihler print using: Vorzeichen exponent print using: zeiger auf exponent print using: anzahl stellen vor dezimalpunkt print using: justify flag print using: s position vor dez.pkt. print using: I position nach dez.pkt. print using: +/- flag (feld} print using: exponent flag lfeldl print using: switch print using: zeichen zihler (feld} print using: vorzeichen nummer print using: blank/stern flag print using: zeiger auf anfang feld

610/710 basic label-def. hard+soft ass/reass... seite 0005 zeile adr. obj.-code source-code 0165 0166 0167 0168 0169 0170 0171 0172 0173 0174 0175 0176 0177 0178 0119 0180 0181 0182 0183 0184 0185 0186 0187 0188 0189 0190 0191 0192 0193 0194 0195 0196 0197 0198 0199 0200 0201 0202 0203 0204 0205 0206 0207 0208 0209 0210 0211 0212 0213 0214 0215 0216 lfor endfd pufill pucoma pudot pumony ierror imain icrnch iqplop igone ieval ifrmev ichrgo ichrge trapno errlin errtxt $0271 $0272 $0273 $0214 $0275 $0276 $0280 $0282 $0284 $0286 $0288 $028a $028c $028e $0290 $0296 $0298 $029a oldstk tmptrp dsptmp oldtok tmpdes highst $029c $029d $029e $0Z9f $0Za0 $0Za6 ===> externe rom-label <=== knwsys kvrese kfunky kioini kcint klkups klkupl kstmsg kmemtp kmembt kreast kstlfs kstnam kopen leelose kchkin leckout kclrch kbasin lebsaut kload ksave lesttim krdtim $ff6c $ff6f $ff75 $ff7b $ff7e $ff8a $ff8d $ff90 $ff99 $ff9c $ffb7 $ffba $ffbd $ffc0 $ffc3 $ffc6 $ffc9 $ffcc $ffcf $ffdz $ffd5 $ffd8 $ffdb $ffde print using: länge formatstrings print using: zeiger auf ende Feld print using: FÜllzeichen print using: kammazeichen print using: zeichen dez.punkt print using: Währungszeichen addrl fehler routine addrl basic-warteschleife addrl token-umwandlungsroutine addrl token ausgabe expander rout. addrl dispateher addrl beliebigen ausdruck auswerten addrl beliebigen ausdruck auswerten addrl chrgot routine addrl chrget routine addrl zeiger error trap lo-byte Zeilennummer akt. fehler addrl basic-text zeiger bei Fehlerbehandlung stackzeigervor "trap" ausführuns hi-byte zeilennummer "trap, resume temp. speieher "dispose' temp. speieher 'dispose temp. speieher 'instr$' lo-byte max. offset user bank transfer-of-execution jumper netz ein/aus reset-vector vector für Funktionstasten initialisierung ein-/ausgabe initialisierung bildschirm geriteadr. Über sekundiradr.suchen gerite- sekundäradr. Über logische file I suchen meldung des operating-syst. ausgeben höchste speichergrenze lesen/schreiben unterste speichergrenze lesen/schreiben ein-/ausgabe-status lesen/schreiben log. filenummer, gerite- und sekundiradr. eintragen länge und adresse des filenamens eintragen log. file Öffnen/befehl ausgeben logisches file schliessen eingabeleanal öffnen ausgabeleanal öffnen ein-lausgabeleanal schlieben eingabe I char vom akt. kanal ausgabe I char auf akt. lcanal einlesen vom logischen file abspeichern auf logisches file interne uhr stellen interne uhr ablesen

610/110 basic label-def. hard+soft ass/reass..... seit& 0006 zeile adr. obj.-code source-code 0217 kstop $ffel test stop-taste 0218 kgetin $ffe4 eingabe I char von tastaturpuffer 0219 kclall $ffe7 alle logischen files schliessen 0220 kplot $fff0 x,y-pos. des cursor lesen/schreiben 0221 hairq $fffe 6509 hardware-irq-vektor 0222 0223.end 0224.lib b7 IObas. con

610/710 konstanten hard+soft ass/reass..... seite 0007 zeile adr. obj.-code source-code 0226 0227 0228 0229 0230 0231 0232 0233 0234 0235 0236 0237 0238 0239 0240 024 I 0242 0243 0244 0245 0246 024 7 0248 0249 0250 025 I 0252 0253 ===> ascii- und asc-codes <=== lf er clrscr home eom $Oa $0d 147 197 $80 ===> system-konstanten und parameter <=== forsiz numlev bufsiz addprc addpr2 addpr4 addpr8 stkend clmwid pi strsiz ptrsiz numtmp 19 26 16 I addprc+addprc addpr2+addpr2 addpr4+addpr4 $0 lfb 10 $ff 0254 ===> ieee-konstanten und parameter <=== 0255 0256 025 7 0258 0259 0260 0261 0262 0263 0264 0265 0266 026 7 0268 0269 0270 02 7 I 0272 0273 0274 0215 0276 0271 0278 0279 0280 0281 dc te ren attn dav eoi ndac nrfd ifc srq rddb tddb eoist tlkr lstnr utlkr ulstn toout toin eoist nodev sperr 3 3 $01 $02 $04 $08 $10 $20 $40 $80 $01 $02 ascii für "line feed" ascii für carriage return asc für clear screen asc für cursor home end-of-message-kennung erstes byte für stack Spaltenbreite für tabulation mit basic-token für pi anzahl speieherstellen für string-descriptor anzahl speieherstellen für speicher-zeiger 75160/75161 control line 75160/15161 control line remote enable attention data available end or identify not data accepted not ready for data interface clear service request nrfd+ndac+te+dc+ren direction for receiver eoi+dav+attn+te+dc+ren direction for transmit $40 $40 $20 $Sf $3f $01 $02 $40 $80 $10 eoi status test device is talker device is listener device untalk device unlisten timeout status on output timeout status on input eoi on input no device on bus verify error

610/710 konstanten hard+soft ass/reass.... seite 0008 zeile adr. obj.-code source-code 0282 0283 0284 0285 0286 0287 0288 0289 0290 0291 0292 0293 0294 0295 0296 0291 0298 0299 0300 0301 0302 0303 0304 0305 0306 0307 0308 ===> ===> ===> slock dibf $40 $80 vorbelegte speicher-segmente <=== sysbnk mxbank txtbnk varbnk arybnk strbnk $0f sysbnk+l I 3 2 dos-interface-konstanten <=== dosfnl dosdsk doslfn dosctl dos1st 16+2 8 14 21 dosfnl+dosfnl+dosfnl+16 screen editor lack-out data in output buffer nummer der system-bank erste nicht erreichbare bank bank für basic-programme bank für einfache variablen (256k-version) bank für Variablenfelder I 256k-versionJ bank für strings (256k-versionJ länge von filenamen vorgabewert für disc-gerätenummer dos internal logical file nummer kernal coprozessor communications-variablen <=== ipb ipbsiz $0800 13 0309 0310 ---> offsets im ipc-puffer <--- 03 I I 0312 ipccmd 0 0313 ipcjmp 03" ipcin 3 0315 ipcout 0316 ipcdat 5 ' 0311 0318.end 0319.lib tokens basisadresse ipc-puffer kernal inter process communication puffer-länge ipc befehl ipc sprung-adresse anzahl ipc eingabe-bytes anzahl ipc ausgabe-bytes ipc data-puffer 18 bytesj

610/710 basic-tokens hard+soft ass/reass.... seite 0009 zeile adr. obj.-code source-code 0321 0322 0323 0324 0325 0326 0327 032B 0329 0330 0331 0332 BOOO BOOO BOOO BOOO BOOO B003 B003 B003 B003 B003 0333 B006 0334 B006 = $BOOO ===> basic kalt-start <=== 4c 27 bb jmp init ===> basic warm-start <=== 4c cc bb jmp warm 0335 8006 ===> commodore rom-kennung 'cbm <=== 0336 0337 B006 8006 c3 0337 BOO 7 c2 0337 BOOB Cd 033B B009 0339 B009 0340 B009 0341 B009 0342 8009 0343 BOOb 0344 800b 0345 800b 0346 BOOb 0347 BOOb ba 96 034B BOOd do 96 0349 BOOf lb a2 0350 0351 0352 0353 0354 0355 0356 BO II BOI3 BOIS BOI7 8019 801b 801d 55 a9 66 BB bc bb 73 a9 cb B9 5a 87 2c 99 0357 035B 0359 0360 0361 BO!f 8021 8023 B025 8027 57 B7 B 7 Be 2a bb ef BO 0362 802 7.byte $c3, $c2, $cd warm-start ===> adress-kennzeichnungs-byte für rom-beginn '$B' <=== 38 20.byte 'B ===> adress-tabelle <===.word evall.word eval2.word floats.word fretms.word getstk.word initv.word inpcom.word prit4.word newstt. word ptrget.word xeqdir.word gotoo.word inito.word res1st 0363 B027 ===> adress-tabelle der basic-befehle <=== 0364 0365 0366 0367 0368 0369 0370 0311 0372 0373 802 7 8027 8029 B02b B02d 802f B031 8033 B035 8037 a9 Bb 93 Ba 05 Bb de Be 4a Bf 65 Bf Ob 91 e9 Bf B9 8d 0374 8039 83 Be stmdsp.word end-!.word for-1.word next-1.word data-1.word inputn-1. word input- 1. word dim-1.word read-1.word let-1.word goto-1 umw. zahlenstring in gk-zahl folgenden ausdruck!keine ziffer) auswerten test stapelplatz standard-vektoren ins ram kopieren neues statement, stoptest variable suchen/anlegen, deren name folgt test gültiges befehlszeichen, weiter basic-befehlswort text-tabelle basic-routine 'end' basic-routine 'for basic-routine 'next' basic-routine 'data basic-routine 'input ' basic-routine 'input' basic-routine 'dim basic-routine 'read' basic-routine 'let' basic-routine goto

610/710 basic-tokens hard+soft ass/reass.... seite 0010 zeile adr. obj.-code source-code 0375 103b 0376 B03b 0377 803d 0371 103f 0379 BOU 0310 B043 0311 BOU 0382 BOH 0383 B049 0314 B04b 0385 804d 03B6 BOH 03B1 8051 0388 BOSJ 0319 B055 0390 B057 0391 B059 0392 B05b 0393 B05d 0394 B05f 0395 B06, 0396 B063 0397 8065 039B 8067 0399 B069 0400 B06b 0401 B06d 0402 B06f 0403 B071 0404 B073 0405 B075 0406 B077 0407 8079 040B B07b 0409 B07d 0410 B07f 0411 BOB I 0412 BOB3 0413 BOB5 0414 BOB7 0415 BOB9 0416 BOBb 0417 BOBd 041B 80Bf 0419 8091 0420 B093 0421 B095 0422 B097 0423 B099 0424 809b 0425 B09d 0426 809f 042 7 BOa I 042B BOa3 0429 BOa5 0430 80a7 0431 BOa9 0432 BOab 06 Be 41 Be 7B Bb 24 Be b7 Be 76 Be a 7 Bb 2a Bd 51 91 c7 91 Ia 92 bb 91 15 9 I 45 91 19 Be 9c Be eb Bb Be 89 H Ba 7f Be e& 90 42 92 96 92 14 Bf 2B Ba 7b Be 45 95 6e 93 ab 93 9d 94 26 94 12 95 5f 95 29 95 7d 93 c2 93 Cd 93 ao 92!il 95 63 94 ao 92 09 95 dd 93 Od 94 eb 93 7e 9 I 9c af 76 Be 15 Bd c3 Bd 23 Be bf a 7 10 a2 bl a2 2f a2 02 00 f5 9e stmdsl.ward run-1.ward if- I.word restor-1.ward gosub-1.word return-1.word rem-1.word stop-1.word ongoto-1.word fnwait-1.word eload-1.word esave-1. word cverf- 1.word defn-1.word poke- 1.word printn-1.word print-1.word eont-1.word list-1.word elear-1.word emd- I.word csys- I.word eopen-1. word cclos- I.word get-1.word scrath-1.ward go-1.word concat-1.word dopen-!.word dclose-1.ward record- I.word format-1.word colect-1.word backup-1.word deopy-1.word append-1. ward dsave- I. word dload- I.word dcat-1.word rename-1. ward scra tc- I.ward dcat-1.word dclear-1.ward cnbanl<-1. ward bload- I.ward bsave-1. word fkey- I. ward delete- I.ward rem- I.ward trap-1.word resume-1.ward dispos-1.ward puetrl-1.ward sgn.word int.ward abs.word usrpol<.ward fre basic-routine run basic-routine 'if' basic-routine 'restore' basic-routine 'gosub' basie-routine 'return' basic-routine basic-routine basic-routine basic-routine basic-routine basic-routine basic-routine basie-routine basic-routine basic-routine basie-routine basie-routine basic-routine rem stop' 'on - goto' 'wait' 'Load save 'verify' 'def' 'poke' 'printl' 'print' 'cont' 'list' basie-routine 'clr', zera=o rts basic-routine 'cmd' basic-routine sys basic-routine 'open basic-routine 'close' basic-routine 'get' basic-routine new basic-routine 'go to' disc-basic-routine 'concat' dise-basie-routine 'dopen' disc-basic-routine 'dclose' disc-basic-routine 'record' disc-basic-routine 'header' disc-basic-routine 'callect' disc-basic-routine disc-basic-routine disc-basic-routine disc-basic-routine dise-basie-routine 'backup eapy append 'dsave' 'dload disc-basic-rout. 'catalog-dir. disc-basic-routine 'rename' dise-basie-routine 'serateh' disc-basie-rout. 'catalog-dir. disc-basie-routine 'delear' basie-rautine 'bank' disc-basic-routine 'bload' dise-basie-routine 'bsave' basie-rautine 'key' basic-routine 'delete' basie-rautine rem basie-rautine 'trap' basic-routine basic-rautine basic-rautine basic-routine basic-routine basic-rautine resume 'dispose' pudef sgn fac=sgn(fac} int' fac=i41tl fac J 'abs' abs=abs(facj jmp code fur user-routine basic-rautine 'fre'

6101710 basic-tokens hard+soft asslreass...... seite 0011 zeile adr. obj.-code source-code 0433 80ad 0434 BOaf 0435 80bl 0436 80b3 0437 80b5 0438 BOb1 0439 80b9 OHO BObb OHI BObd OH2 BObf OH3 80c I 04H 80c3 OH5 80c5 0446 80c7 0447 80c9 0448 BOcb OH9 80cd 0450 80cf 0451 80dl 0452 BOdl 33 9d 37 a5 59 a6 ca 9f b3 a5 a6 a6 ad a6 f8 a6 91 a 7 07 9e Be ab db a 7 ae ab 9d ab dl aa eb aa 22 ab 42 ab.ward pos.ward sqr.ward rnd.ward log.ward exp.ward cos.ward sin.ward tan.ward atn.ward peek. ward len.ward strd.ward val.ward asc.ward chrd.ward leftd.ward rightd.ward midd basic-routine 'pos basic-routine sqr fac=sqr(facl basic-routine 'rnd' basic-routine 'log' basic-routine exp fac=exp(facl basic-routine cos fac=coslfacl basic-routine s~n basic-routine 'tan' fac=tanlfacl basic-routine 'atn' fac=atnlfacl basic-routine 'peek' basic-routine 'len' basic-routine 'str$' basic-routine 'val basic-routine asc basic-routine 'ehr$' basic-routine 'left$' basic-routine 'right$' basic-routine 'mid$' 0453 BOdl ===> adresse I prioritätsflags der math. raut. <=== 0454 80dl 0455 BOdl 19 optab.byte $79 0456 80d2 4c 9e. ward faddt-1 045 7 80d4 19 0458 80d5 2f 9e 0459 80d7 7b 0460 0461 0462 0463 0464 0465 0466 0467 80d8 SOda BOdb 80dd BOde 80e0 80el BOe3 Oa ao 7b e8 ao 7f 40 a5 50 6d 98 46 046B 80e4 6a 98 0469 B0e6 7d 0470 80e7 79 a5 04 71 BOe9 5a 0412 80ea f7 96 0473 BOec 64 0474 80ed a7 98 0475 80ef 04 76 80ef. byte $19. ward fsubt- I.byte $7b.ward fmultt-1.byte $7b.ward fdivt-1. byte $7f.ward fpwrt-1.byte $50.ward andop-1. byte $46.ward orop-1.byte $7d.ward negop-1.byte $5a.ward notop-1. byte $64. ward dorel- I 0477 BOef ===> basic-befehlswort text-tabelle <=== 0478 80ef 0479 80ef res1st.byte en'. $c4 04 79 80fl 0480 80f2. byte fo, $d2 0480 80f4 d2 OUI 0481 0482 0482 0483 0483 80f5 80f8 80f9 80fc 80fd 8100 4e 45 58 d4 H 41 54 cl 49 4e 50 55 54.byte nex', $d4. byte 'dat ', Sc 1.byte 'input', $a3 adresse I prioritätsflags der math. raut. adresse I prioritätsflags der math. raut. basic-routine - (dez. subtr.j basic-routine ' (dez. multipl. I basic-routine 'I' (dez. divisionl basic-routine 'dez. potenz' basic operations-routine 'and' basic operations-routine or basic-routine negation basic operations-routine 'not' basic operations-routine '<=>'

610/710 basie-tokens hard soft ass/reass.... seite 0012 zeile adr. obj.-eode souree-eode 0483 8102 a3 0484 8103 49 4e 50.byte ~npu $d4 0484 8106 55 0484 8107 d4 0485 8108 H 49.byte 'di. $ed 0485 810a ed 0486 BIOb 52 45 0486 810e e4 ".byte rea $e4 0487 810f 4e 45.byte 'le, $d4 0487 Bill d4 0488 8112 H H 54.byte got, $ef 0488 8115 ef 0489 8116 52 55.byte ru $ee 0489 8118 ee 0490 8119 49.byte. i. $e6 0490 8lla e6 0491 8llb 52 45 53.byte restor, $e5 0491 811e 54 H 52 0491 8121 e5 0492 8122 H H 53.byte gosu $e2 0492 8125 55 0492 8126 e2 0493 8127 52 45 54.byte retur See 0493 BIZa 55 52 0493 Bl2e ee 0494 812d 52 45.byte re $ed 0494 812f ed 0495 8130 53 54 H.byte sto $d0 0495 8133 do 0496 8134 H.byte 0 See 0496 8135 ee 0497 8136 57 49.byte " wa~ $d4 0497 8139 d4 0498 813a 4e H.byte 'loa, $e4 0498 813d e4 " 0499 813e 53 56.byte sav', $e5 0499 8141 e5 " 0500 8142 56 45 52.byte verif', $d9 0500 8145 49 46 0500 8147 d9 0501 8148 H 45.byte 'de, $e6 0501 81h e6 0502 814b 50 H 4b.byte pok', $e5 0502 8 He e5 0503 81H 50 52 49. byte print, $a3 0503 8152 4e 54 0503 8154 a3 0504 8155 50 52 49.byte pr~n $d4 0504 8158 4e 0504 8159 d4 0505 815a 43 H 4e.byte eon $d4 0505 815d d4 0506 815e 4e 49 53.byte 'lis, $d4 0506 8161 d4 0507 8162 0 4c.byte el ', $d2 0507 8164 d2 0508 8165 43 4d.byte cm', $e4 0508 816 7 e4

610/710 basie-tokens hard soft ass/reass.... seite 0013 zeile adr. obj.-eode souree-eode 0509 8168 53 59.byte sy.' Sd3 0509 816a d3 0510 816b H 50 45.byte ope', See 0510 816e ee 0511 816f 0 4e H.byte "elos SeS 0511 8172 53 0511 8173 es 0512 81H H 45.byte ge,' Sd4 0512 8176 d4 0513 8177 4e H.byte ne', Sd1 0513 8179 d7 0514 817a 54 H.byte 'tab', $ab 0514 8 17d ab " 0515 817e 54. byte. t. $ef 0515 817f ef 0516 8180 46.byte 'f.' See 0516 818 I ee 0517 8182 53 50 0.byte spe', $ab 0517 8185 ab 0518 8186 54 48 45.byte the ', See 0518 8189 ee 0519 818a h H.byte no ', $d4 0519 BI Be d4 0520 818d 53 54 45.byte ste ', $d0 0520 8190 do 0521 8191 ab.byte $ab 0522 8192 ad.byte $ad 0523 8193 aa.byte $aa 0524 8194 af.byte $af 0525 8195 de.byte $de 0526 8196 h.byte an $e4 0526 8198 e4 " 0521 8199 H.byte 0 ' $d2 0521 819a d2 0528 819b be.byte $be 0529 819c bd.byte $bd 0530 819d be.byte $bc 0531 819e 53 H.byte sg,' See 0531 BlaO ce 0532 81a 1 49 4e.byte ~n $d4 0532 81a3 d4 0533 81a4 42.byte 'ab', $d3 0533 81a6 d3 " 0534 Bla 7 55 53. byte us $d2 0534 81a9 d2 0535 81aa 46 52.byte 'fr, Ses 0535 81ac es 0536 Blad 50 H.byte po Sd3 0536 81af d3 0537 81b0 53 51.byte sq.' $d2 053 7 81b2 d2 0538 81b3 52 h.byte rn', $d 0538 81b5 c4 0539 81b6 4c H.byte 'lo, SeT 0539 81b8 e7 0540 81b9 45 58.byte ex', $d0 0540 81bb do 0541 Blbe 0 H.byte CO $d3

610/710 basic-tokens hard+soft ass/reass..... seite 0014 zeile adr. obj.-code source-code 0541 Blbe d3 0542 Blbf 53 49.byte s~ $ce 0542 Blei ce 05H Blc2 54 41.byte "ta, $ce 05H Blc4 ce 05H Blc5 41 54.byte at, $ce 0544 Blc7 ce 0545 BlcB 50 H 45.byte pee $cb 0545 Blcb cb 0546 Blcc 4c H.byte "le, $ce 0546 Blce ce 0547 Blcf 53 54 52.byte str $a4 0541 Bld2 a4 0548 Bld3 56 41.byte va $cc 054B Bld5 cc 0549 Bld6 41 53.byte as $c3 0549 BldB c3 0550 Bld9 43 4B 52.byte ehr $a4 0550 Bldc a4 0551 Bldd 4c 45 46.byte "left, $a4 0551 BleO 54 0551 Blei a4 0552 Ble2 52 49 H. byte right, $a4 0552 Ble5 48 54 0552 Ble7 a4 0553 BleB 4d 49 H.byte "mid", $a4 0553 Bleb a4 0!154 Blec H.byte g"' $cf 0554 Bled cf 0555 Blee H H 4e.byte conca $d4 0555 Blfl 43 0555 Blf3 d4 " 0556 BIH H H 50.byte "dope, $ce 0556 Blf7 45 0556 BlfB ce 0557 Blf9 H 43 4c.byte "dclas, $c5 0557 Blfc H 53 0557 Blfe es 055B Blff 52 H H.byte recor $c4 055B B202 H 52 055B B204 c4 0559 B205 48 45 0559 B20B H H ".byte heade, $d2 0559 B20a d2 0560 B20b H H 4c.byte collec $d4 0560 B20e 4c 45 43 0560 B2" d4 0561 B212 42 43.byte "backu, $d0 056 I B215 4b " 55 0561 B217 do 0562 B21B 43 H 50.byte COp $d9 0562 B21b d9 0563 B21c 4 I 50 50.byte appen $c4 0563 B21f 45 4e 0563 8221 c4 0564 B222 H 53 0564 B225 56 ".byte dsav, $c5 0564 B226 c5

610/710 basic-tokens hard+soft ass/reass.... seite 0015 zeile adr. obj.-code source-code 0565 8227 H 4c 4f.byte 'dloa, $c4 0565 822a 0565 822b c4 " 0566 822c 43 54.byte 'catalo $c7 0566 822f " " 4c 4f 0566 8232 c7 0567 8233 52 45 4e.byte 'renam', $c5 056 7 8236 " 4d 0567 8238 c5 0568 8239 53 43 52.byte scratc $c8 0568 823c 54 43 0568 823f c8 " 0569 8240 H 49 52.byte 'director $d9 0569 8243 45 43 54 0569 8246 4f 52 0569 8248 d9 0570 8249 H 43 4c.byte 'dclea, $d2 0570 824c 45 0570 824e d2 " 0571 824f 42 4e.byte 'ban, $cb 0571 8252 cb " 0572 8253 42 4c 4f.byte 'bloa, $c4 0572 8256 0572 8257 c4 " 0573 8258 42 53 ".byte 'bsav, $c5 0573 825b 56 0573 825c c5 0574 825d 4b 45.byte 'ke, $d9 0574 82!if d9 0575 8260 H 45 4c.byte delet, $c5 0575 8263 45 54 0575 8265 c5 0576 8266 45 4c 53.byte els $c5 0576 8269 c5 0577 826a 54 52 0577 826d do ". byte tra, $d0 0578 826e 52 45 53.byte resum, $c5 0578 8271 55 4d 0578 8273 c5 0579 8214 H 49 53.byte dispos, $c5 0579 8277 50 4f 53 0579 827a c5 0580 827b 50 55 H.byte pude $c6 0580 827e 45 0580 827f c6 0581 8280 55 53 49.byte us~n $c7 0581 8283 4e 0581 8284 c7 0582 8285 45 52 52. byte err $a4 0582 8288 a4 0583 8289 49 4e 53.byte inst ', $d2, $00 0583 828c 54 0583 828d d2 0583 828e 00 0584 828f 0585 828f 0586 828f ===> ind. Sprungtabelle basic-/system fehlermeldungen <=== 058 7 828f

610/710 basic-tokens hard+soft ass/reass.... seite 0016 zeile adr. obj.-code source-code text: s top key detected text: "too many files" text: "file open tex t: f ile not open text: "file not found" text: "device not present text: "not input file" text: "not output file" 0588 0589 0590 0591 0592 0593 0594 0595 82Bf 8291 8293 8295 8297 8299 829b 829d e7 82 f9 82 OB BJ 12 BJ 20 8J 2f 83 42 83 51 BJ ebase.word amso.word amsl.word ams2.ward ams3.word ams4.ward ams5.word ams6.ward ams 7 0596 0591 0598 0599 0600 829f 82a I 82aJ 82a5 B2a 7 61 BJ 7J BJ 89 8J 99 BJ de 84.word ams8.word ams9.word amsjo.word amsji.word reddy text: m~ss~ng text: ready. 0601 0602 0603 0604 0605 0606 0601 0608 0609 0610 0611 0612 0613 0614 0615 0616 0611 0618 0619 0620 0621 0622 0623 0624 0625 0626 82a9 82ab 82ad 82af 82bl 82bJ 82b5 82b1 82b9 82bb 82bd 82bf 82cl 82cJ 82c5 B2c7 82c9 82cb 82cd B2cf 82dl 82dJ 82d5 82d7 82d9 B2db d9 84 e7 84 ee 84 fd 84 00 02 Oe 85 BI bb a5 8J b6 BJ cj 83 db 83 e4 BJ f5 BJ fe 83 Oe 84 20 84 2e 84 Je 84 4d 84 Sc 84 6a 84 7a 84 84 84 98 84 ab 84 bb 84.ward aintxt.word abrkt>c.word aexi.word atry.ward buf.word aremsg.word signon.word aernf.word aersn.word aerrg.word aerod.word aerfc.word aerov. word aerom.word aerus.word aerbs.word aerdd.word aerdvo.word aerid.word aertm.word aerls.word aerbd.word aerst.word aercn.word aeruf.word aerld text: in 0621 82dd c9 84.word aervr 0628 B2df 14 85.word aeros 0629 B2el 2d 85.word aercr 0630 B2eJ Je 85.word aerdi 0631 82e5 21 85.word aerot 06J2 B2e 7 0633 B2e 7 0634 82e1 ===> text: 'stop key detected" <=== 0635 B2e 7 06J6 82e7 53 54 4f amso.byte 'stop key detected', $00 0636 0636 06J6 0636 0636 0636 0637 B2ea 82ed 82f0 82f3 B2f6 82f8 82(9 50 20 4b H 59 20 HH54 H 43 54 45 " 00 06J8 82f9 0639 82f9 ===> text: "too many files' <=== file name" text: "illegal device number" text: are you sure?" text: bad disk text: break text: extra ignored' text: redo from start' basic input-puffer l-$2ffl text: more text: '*** cbm basic 128,v4.0 ***' text: next wi thout for text: 'syntax error text: 'return wi thout gosub' text: 'out of data' text: illegal quanti ty text: overf low text: 'out of memory' text: 'undefined statement' text: bad subscript text: 'red im' 'd array' text: 'division by zero' text: "illegal direct' text: type mismatch text: 'string too lang' text: 'file data' text: 'formula too comple>c' text: 'cannot continue' text: "undefined function' text: '?load error' text: "?verify error' text: out of stack' text: 'unable to resume' text: 'unable to dispose' text: out of text

610/710 basic-tokens hard+soft ass/reass.... seite 0017 zeile adr. obj.-code source-code 0640 82f9 0641 82f9 54 H H amsl.byte too many files $00 0641 82fc 20 4d 41 0641 82ff 4e 59 20 0641 8302 46 49 4c 0641 8305 45 53 0641 8307 00 0642 8308 0643 8308 0644 8308 ===> text: file open <=== 0645 8308 0646 8308 46 49 4c ams2.byte "file open $00 0646 830b 45 20 H 0646 830e 50 45 4e 0646 8311 00 0647 8312 0648 8312 0649 8312 ===> text: "file not open <=== 0650 8312 0651 8312 46 49 4c ams3.byte "file not open $00 0651 8315 45 20 4e 0651 8318 H 54 20 0651 831b H 50 45 0651 831e 4e 0651 831f 00 0652 8320 0653 8320 0654 8320 ===> text: file not found' <=== 0655 8320 0656 8320 46 49 4c ams4.byte file not found, $00 0656 8323 45 20 4e 0656 8326 H 54 20 0656 8329 46 H 55 0656 832c 4e H 0656 832e 00 0657 832f 0658 832f 0659 832f ===> text: 'device not present' <=== 0660 83Zf 0661 832f H 45 56 ams5.byte 'device not present', $00 0661 8332 49 43 45 0661 8335 20 4e H 0661 8338 54 20 50 0661 833b 52 45 53 0661 833e 45 4e 54 0661 8341 00 0662 8342 0663 8342 0664 8342 ===> text: not input file <=== 0665 8342 0666 8342 4e H 54 ams6.byte not input file $00 0666 8345 20 49 4e 0666 8348 50 55 54 0666 834b 20 46 49 0666 834e 4c 45 0666 8350 00 0667 8351 0668 8351

610/710 basic-tokens hard+soft ass/reass..... seite 0018 zeile adr. obj.-code source-code 0669 8351 ===> text: "not output file <=== 0670 8351 0671 8351 4e H 54 ams7.byte not output file, $00 0671 8354 20 H 55 0671 8351 54 50 55 06 71 835a 54 20 46 0671 835d 49 4c 45 0671 8360 00 0612 8361 0613 8361 0614 8361 ===> text: 'missing file name <=== 0615 8361 0676 8361 4d 49 53 ams8.byte missing file name $00 0676 8364 53 49 4e 0676 8367 H 20 46 0676 836a 49 4c u 0676 836d 20 4e " 0676 8370 4d u 0676 8372 00 06 77 8373 0678 8313 0679 8313 ===> text: "illegal device number <=== 0610 8313 0681 8313 49 4c 4c ams9.byte "illegal device number $00 " 0611 8376 45 47 0681 8379 4C 20 H 0681 837c 45 56 49 0681 837f 43 45 20 0681 8382 4e 55 4d 0681 8385 42 45 52 0681 8388 00 0682 8389 0683 8389 0684 8389 ===> text: are you sure?" <=== 0685 8389 0686 8389 Od ams30.byte $0d 0687 838a 52 45.byte are you sure? 0 $00 0681 838d 20 " 59 H 0687 8390 55 20 53 0687 8393 55 52 45 0687 8396 20 Jf 0687 8398 00 0688 8399 0689 8399 0690 8399 ===> text: "bad disk <=== 0691 8399 0692 8399 Od ams31.byte $0d 0693 839a 42 H.byte "bad disk $0d, $00 0693 839d 20 H 49 " 0693 8Ja0 53 4b 20 0693 83a3 Od 0693 B3a4 00 0694 83a5 0695 83a5 0696 B3a5 ===> text: next without for <=== 0697 83a5 0698 83a5 4e 45 58 aernf.byte "next without for $00 0698 83aB 54 20 57

610/710 basic-tokens hard+soft ass/reass...... seite 0019 zeile adr. obj.-code source-code 0698 83ab 49 54 48 0698 83ae H 55 54 0698 83bl 20 46 H 0698 83b4 52 0698 83b5 00 0699 83b6 0700 83b6 oro r 83b6 ===> text: syntax error <=== 0702 83b6 0703 83b6 53 59 4e aersn.byte syntax error $00 0703 83b9 H 41 58 0703 83bc 20 45 52 0703 83bf 52 H 52 0703 83c2 00 0704 83c3 0705 83c3 0706 83c3 ===> text: 'return without gosub' <=== 0 70 7 83c3 0708 83c3 52 45 54 aerrg.byte return without gosub, $00 0708 83c6 55 52 4e 0708 83c9 20 57 49 0708 83cc 54 48 H 0708 83cf 55 54 20 0708 83d2 H H 53 0708 83d5 55 42 0708 83d7 00 0709 83d8 0710 83d8 0711 83d8 ===> text: out of data <=== 0712 83d8 0713 83d8 H 55 54 aerod. byte out of data $00 0713 83db 20 H 46 0713 83de 20 H " 0713 83e r 54 41 0713 83e3 00 0714 83e4 0715 83e4 0716 83e4 0717 83e4 ===> text: 'illegal quantity <=== 0718 83e4 49 4c 4c aerfc.byte 'illegal quantity $00 0718 83e7 45 H 4 r 0718 83ea 4c 20 51 0718 83ed 55 41 4e 0718 83f0 54 49 54 0718 83f3 59 0718 83(4 00 0719 83f5 0720 83f5 012 r 83f5 ===> text: overflow <=== 0722 83f5 0723 83f5 H 56 45 aerov.byte overflow', $00 0723 83f8 52 46 4c 0723 83fb H 57 0723 83fd 00 0724 83fe 0725 83fe 0726 83fe 0 72 7 83fe ===> text: out of memory <===

610/710 basic-tokens hard+soft ass/reass.... seite 0020 zeile adr. obj.-code source-code 0728 83fe H 55 54 aerom.byte out of memory, $00 0728 8401 20 H 46 0728 8404 20 4d 45 0728 8401 4d H 52 0128 840a 59 0128 HOb 00 0729 840c 0730 840c 0731 840c ===> text: 'undefined statement' <=== 0732 840c 0733 840c 55 4e H aerus.byte undefined statement', $00 0133 B40f 45 46 49 " 0133 8"2 4e 45 0133 8415 20 53 54 0133 8"8 41 54 45 0133 8"b 4d 45 4e 0733 8"e 54 0133 8"f 00 0734 8420 0135 8420 0136 8420 ===> text: 'bad subscript' <=== 013 7 8420 0738 8420 42 " " aerbs.byte bad subscript, $00 0738 8423 20 53 55 0738 8426 42 53 43 0138 8429 52 49 50 0738 842c 54 0738 842d 00 0739 842e 0740 842e 0741 842e ===> text: red im d array <=== 0742 842e 0743 842e 52 45 0143 8431 49 4d 27 " 0743 8434 0743 807 52 52 41 " 20 " aerdd.byte 'redim' 'd array $00 0743 843a 59 0743 843b 00 0744 843c 0745 843c 0746 843c ===> text: 'division by zero' <=== 07H 843c 0748 843c 49 56 aerdvo.byte 'division by zero $00 0148 843f 49 53 49 " 0748 8442 H 4e 20 0748 8445 H 59 20 0748 8448 5a 45 52 0748 8Hb H 0748 8Hc 00 0749 8Hd 0750 844d 0751 844d ===> text: 'illegal direct <=== 0152 844d 0753 BHd 49 4c 4c aerid.byte 'illegal direct, $00 " 0753 8UO H H 0753 8453 4c 20 44 0153 8456 49 52 45 0753 8459 43 54

610/710 basic-tokens hard+soft ass/reass.... seite 0021 zeile adr. obj.-code source-code 0753 845b 00 0754 845c 0755 845c 0756 845C ===> text: 'type mismatch' <=== 0757 845c 0758 BHc 54 59 50 aertm.byte type misma tch, $00 0758 845f 45 20 4d 0758 8462 49 53 4d 0758 8U5 41 54 43 0758 8468 48 0758 8469 00 0759 BUa 0760 BUa 0761 846a ===> text: string too long <=== 0762 846a 0763 846a 53 54 52 aerls.byte string too long $00 0763 846d 49 4e 47 0763 8470 20 54 H 0763 8473 H 20 4c 0763 8476 H 4e 47 0763 8479 00 0764 847a 0765 847a 0766 847a ===> text: 'file data' <=== 0 76 7 847a 0768 847a 46 49 4c aerbd.byte 'file data, $00 0 768 847d 45 20 H 0768 8480 41 54 41 0768 8483 00 0769 8484 0770 8484 0771 8484 ===> text: 'formula too complex <=== 0 772 8484 0773 8484 u H 52 aerst.byte 'formula too complex $00 0773 848 7 4d 55 4c 0773 848a 41 20 54 0773 848d H H 20 0773 8490 43 H 4d 0 7 73 8493 50 4c 45 0773 8496 58 0 773 8497 00 0774 8498 0 775 8498 0776 8498 ===> text: cannot continue <=== 0777 8498 0778 8498 43 41 4e aercn.byte cannot continue $00 0 778 849b 4e H 54 0778 849e 20 43 H 0 778 Ha I 4e 54 49 0778 84a4 4e 55 45 0778 84a7 00 0779 84a8 0780 8h8 0 781 84a8 ===> text: undefined function <=== 0782 84a8 0783 84a8 55 4e H aeruf.byte undefined function $00 0 783 84ab 45 46 49 0783 Hae 4e 45 H

610/710 basic-tokens hard+soft ass/reass.... seite 0022 zeile adr. obj.-code source-code 0713 84bt 20 " 55 0783 84b4 4e 0 54 0783 B4b7 49 H 4e 0783 B4ba 00 0784 B4bb 07115 B4bb 0786 84bb ===> text: "?load error" <=== 0787 B4bb 0788 84bb Od aerld.byte $0d 0189 B4bc 3f 4c H.byte "?load error $0d, $00 0789 B4bf 41 H 20 0189 B4c2 45 52 52 0189 B4c5 H 52 0189 84c7 Od 0789 B4c8 00 0190 B4c9 0191 84c9 0792 84c9 ===> text: '?verify error <=== 0193 84c9 0794 B4c9 Od aervr.byte $0d 0795 84ca 3f 56 45.byte '?verify error $0d, $00 0795 84cd 52 49 46 0795 B4d0 59 20 45 0795 84d3 52 52 H 0795 B4d6 52 0795 B4d1 Od 0195 84dB 00 0796 B4d9 0797 B4d9 0798 B4d9 ===> text: in <=== 0799 B4d9 0800 B4d9 20 49 4e aintxt.byte in $00 0800 B4dc 20 0800 B4dd 00 0801 84de 0802 B4de 0803 B4de ===> text: 'ready. <=== 0/104 B4de 0805 B4de Od reddy.byte $0d 0806 B4df 52 45 41. byte ready. $Od, $00 0806 8492 44 59 Ze 0806 84e5 Od 0806 84e6 00 0807 8497 0808 84e7 0809 84e7 ===> text: break <=== 0810 8497 0811 84e7 Od abrktx.byte $0d 0812 84e8 42 52 45.byte break, $00 0812 B4eb 4 1 4b 0812 B4ed 00 0813 84ee OB 14 84ee 0815 84ee 0816 114ee ===> text: 'extra ignored" <=== 0811 84ee H 58 54 aexi.byte extra ignored, $0d, $00 0811 BH1 52 41 20 0817 8H4 49 47 4e

610/710 basic-tolcens hard+soft ass/reass.... seite 0023 zeile adr. obj.-code source-code 0817 8H7 H 52 H 0817 8Ha H 0817 8Hb Od 0817 BHc 00 0818 BHd 0819 BHd 0820 BHd ===> text: redo from start" <=== 0821 BHd 0822 84fd 52 H H atry.byte redo from start, $0d, $00 0822 8500 H 20 46 0822 8503 52 4f 4d 0822 8506 20 53 54 0822 8509 52 54 0822 850c Od " 0822 850d 00 0823 B50e 0824 850e 0825 850e ===> text: more <=== 0826 850e 0821 850e 4d H 52 aremsg.byte more $0d, $00 0827 8511 45 0827 8512 Od 0827 8513 00 0828 8514 0829 8514 0830 8514 ===> text: out of staclc' <=== 0831 85" 0832 8514 H 55 54 aeros.byte out of staclc', $00 0832 8517 20 H 46 0832 851a 20 53 54 0832 851d 43 4b 0832 8520 00 " 0833 8521 0834 8521 0835 8521 ===> text: out of text' <=== 0836 8521 0837 8521 H 55 54 aerot.byte out of text ', $00 0831 8524 20 H 46 0831 8527 20 54 45 0837 8521 58 54 0837 852c 00 0838 852d 0839 852d 0840 852d ===> text: 'unable to resume <=== 0841 852d 0842 852d 55,. " aercr.byte unable to resume $00 0842 8530 42 4c 45 0842 8533 20 54 H 0842 8536 20 52 45 0842 8539 53 55 4d 0842 853c 45 0842 853d 00 0843 853e 08H 853e 0845 853e ===> text: 'unable to dispose <=== 0846 B53e 0841 853e 55,. " aerdi.byte unable to dispose', $00 084 7 8541 42 4c 45

610/710 basic-tokens hard+soft ass/reass...... seite 002' zeile adr. obj.-code source-code 0847 8544 20 5' H 0847 8547 20 H 49 0847 854a 53 50 H 0847 854d 53 H 084 7 85H 00 0848 8550 0849 8550.end 0850 8550.lib contrl

610/710 basie-eontrl hard+soft ass/reass.... seite 0025 zeile adr. obj.-eode souree-eode 0852 8550 0853 8550 ===> ausgabe '?out of memory error, ready <=== 0854 8550 0855 8550 0856 8552 0857 8555 0858 8555 0859 8555 0860 8555 OB61 8555 0862 8557 0863 B559 OB64 855b 0865 855e 0866 8560 0867 8563 0868 8564 0869 8566 OB 70 856 7 0871 B569 0872 856e 0873 856F OB 74 B571 0875 8573 0876 8576 0877 857B a2 34 omerr ldx 1$34 6e 80 02 error jmp (ierror} ===> error-routine <=== B6 BF eo 36 FO 37 20 57 9d FO 32 ae 97 02 eb FO 2e 88 84 le Be 9d 02 ae 96 02 84 lb ao FF Be 97 02 a2 01 nerror stx errnum epx 1$36 beq errigd jsr tstdir beq errigd ldy trapno+l iny beq errigd dey sty linnum+l sty tmptrp ldy trapno sty linnum ldy I$FF sty trapno+l ldx 1$0 I OB 78 8578 0879 857B ===> Fehlerzeilen I abspeiehern <=== 0880 B578 OBBI 8578 b5 42 sots lda eurlin,x 0882 B57a 9d 9B 02 sta errlin,x 0883 B57d b5 46 lda oldtxt,x 0884 B57f 9d 9a 02 sta errtxt,x 0885 0886 OBB 7 0888 08B9 OB90 0891 8582 8583 8585 B58B 85B9 858e 85Bf ca 10 F3 ae 9e 02 9a 20 Be ba 20 ao Be 4e 80 B 7 dex bpl sots ldx oldstk txs jsr mapusr jsr luk4i t jmp nstt9 OB92 B592 0893 B592 0894 8592 ===> Fehlermeldung ausgeben <=== 0895 8592 0896 8592 0897 8594 0898 B596 0899 8599 0900 859b 0901 B59d 0902 85a0 0903 85a3 090, 85a5 0905 85aB 0906 85ab a5 Ia fo 07 20 cc ff a9 00 85 Ia 20 e8 Be 20 38 b5 a6 Bf 20 cj aj 20 75 Ba errigd lda channl beq error2 jsr kclrch lda 1$00 sta ehannl error2 jsr ocrlf jsr outqst ldx errnum jsr msg jsr stkini addrl Fehler routine 090 7 85ab 0908 85ab ===> im prg-mode zeilenl-ausgabe, ready <=== Fehlernummer für 'trap' Fehlermeldung ausgeben test direktmodus, hi-byt zeile=$ff Fehlermeldung ausgeben addrh zeiger error trap fehlermeldung ausgeben hi-byte akt. zeilennummer hi-byte Zeilennummer 'trap, resume addrl zeiger error trap lo-byte akt. zeilennummer addrh zeiger error trap lo-byte akt. Zeilennummer lo-byte zeilennummer akt. fehler addrl zeiger letzter basie-befehl addrl basic-text zeiger bei fehlerbehandlung fahlerzeilen I abspeichern stack zeiger vor 'trap ausführung umsch. auf bank I I zeilen I > akt. suchen/abarb. speieherstelle für aktiven kanal ein-/ausgabekanal schließen speieherstelle für aktiven kanal ausgabe er (+lf} auf akt. kanal ausgabe '?' Fehlernummer für 'trap textzeiget xr, textaussabe reset stack- u. basicbefehl-zeiger

610/710 basic-contrl hard+soft ass/reass.... seite 0026 zeile adr. obj.-code source-code 0909 Uab 0910 85ab 0911 85ae 0912 85b0 0913 85b2 0914 85b4 0915 85b6 0916 Ub9 0917 85bb 0918 85bd 0919 85c0 0920 85c0 0921 85C0 0922 85c0 0923 85c0 0924 85c2 0925 85c5 0926 85c7 0921 85ca 0928 85cd 0929 85cd 20 Be ba a4 43 co fa bo Oe a2 Ia 20 c3 a3 a5 43 a6 42 20 b4 13 errfin jsr mapusr ldy curlin+l cpy 1$fa bcs ready ldx 1$1a jsr msg lda curlin+l ldx curlin jsr linprt ===> ausgabe ready ready-status <=== a2 18 20 c3 a3 a9 BO 20 90 ff 6c 82 02 ready main ldx 1$18 jsr msg lda 1$80 jsr kstmsg jmp limainl 0930 85cd ===> hauptroutine basic-interpreter <=== 0931 B5cd 0932 0933 0934 0935 0936 0937 0938 0939 0940 0941 0942 0943 0944 0945 0946 85cd 85cf 85dl B5d4 B5d7 B5d9 Udc B5de B5e0 B5e2 85e5 B5e6 85e8 B5ea 85ed a2 ff B6 43 Be 9B 02 Be 99 02 86 Bf 20 e3 86 85 85 84 86 86 81 20 26 ba aa fo e2 90 09 20 bf 88 20 29 ba nmain ldx l$ff stx curlin+ I stx errlin stx errlin+ 1 stx errnum jsr inlin sta txtptr sty txtptr+l stx txtptr+2 jsr chrget tax beq main bcc main I jsr crunch jsr chrgot 0941 0948 85f0 B5f3 4C 57 8 7 jmp xeqdir 0949 85f3 0950 85f3 ===> programmzeilen löschenleinfügen <=== 095 I 85f3 0952 85f3 20 4e Bd mainl jsr linget 0953 0954 0955 0956 0957 0958 0959 0960 096 I 0962 85f6 85f9 85fb 85fe 8600 8602 B604 8606 8608 860a 20 bf 88 84 Oe 20 I f 8 7 90 H ao 01 bl 6d 85 23 a5 2f 85 22 a5 6e jsr crunch sty count jsr fndlin bcc nodel ldy 1$01 lda (lowtrl,y sta indexl+l lda txtend sta indexl lda lowtr+l umsch. auf bank I I hi-byte akt. Zeilennummer ausgabe ready ready-status textzeiger + xr. textausgabe hi-byte akt. Zeilennummer lo-byte akt. Zeilennummer umw. hex/dez, lo=xr, hi=ac, druck zeilen I textzeiger + xr, textausgabe meldung des operating-syst. ausgeben addrl basic-warteschleife hi-byte akt. zeilennummer lo-byte Zeilennummer akt. Fehler hi-byte zeilennummer akt. Fehler Fehlernummer für "trap eingabe einer zeile addrl zeiger auf akt. term addrh zeiger auf akt. term bank zeiger auf akt. term nächstes zeichen nach ac lind.jmpl hauptroutine basic-interpreter programmzeilen löschenleinfügen ind.jmp umw. text in basic-tokens letztes zeichen erneut nach ac (indirekter sprungl test gültiges befehlszeichen. weiter zeilennummer lesen, in adressformat umwandeln ind.jmp umw. text in basic-tokens allgemeiner zähler startadr. von prg.zeile berechnen test: programmzeile einfügen addrl ursprunganfang (verschieben}/ temp. facl2 addrh indirekter index II addrl zeiger ende basic-text addrl indirekter index II addrh ursprunganfang (verschieben} temp. facl2

610/710 basic-contrl hard+soft ass/reass.... seite 0027 zeile adr. obj.-code source-code 0963 0964 0965 0966 0967 860c 85 26 860e 88 860f bl 6d 86 II 18 8612 e5 6d 0968 8614 49 ff 0969 8616 18 0970 8617 65 2f 0971 8619 85 2f 0972 861b 85 25 0973 861d a5 30 0974 861f 69 ff 0975 8621 85 30 0976 8623 e5 6e 0977 8625 aa 0978 8626 38 0979 8627 a5 6d 0980 0987 0982 0983 0984 0985 0986 0987 0988 0989 0990 8639 0997 8639 8629 e5 2f 862b ab 862c bo 03 862e eb 862f c6 26 8637 18 8632 65 22 8634 90 03 8636 c6 23 8638 78 sta index2+1 dey lda llowtr},y clc sbc lowtr eor #$ff clc adc txtend sta txtend sta index2 lda txtend+1 adc #$ff sta txtend+7 sbc lowtr+ 7 tax sec lda lowtr sbc txtend tay bcs qdect7 inx dec index2 7 qdect7 clc adc index7 bcc mloop dec index7 1 clc 0992 8639 ===> verschiebeschleife <=== 0993 0994 0995 0996 0997 0998 0999 1000 100 I 8639 8639 863b b 7 22 9 7 25 863d cb 863e do f9 8640 e6 23 8642 e6 26 86H ca 8645 do f2 1002 864 7 1003 8647 mloop lda lindex7j,y sta lindex2j,y iny bne mloop inc index1>1 inc index2 7 dex bne mloop 1004 8647 ===> test: programmzeile einfügen <=== 1005 8641 1006 8641 1007 8648 1008 864d 1009 86H 1010 8651 1011 8653 1012 8656 7013 8656 20 47 Ba 20 a4 86 ao 00 b 1 85 do 03 4c ca 85 nodel jsr clearc jsr lnkprg ldy #$00 lda ltxtptr},y bne nadele jmp main 1014 8656 ===> programmzeile einfügen <=== 1075 8656 1016 8656 18 nadele clc addrh indirekter index #2 addrl ursprunganfang (verschieben}/ temp. fac#2 addrl ursprunganfang lverschiebenl/ temp. fac#2 addrl zeiger ende basic-text addrl zeiger ende basic-text addrl indirekter index #2 addrh zeiger ende basic-text addrh zeiger ende basic-text addrh ursprunganfang (verschieben} temp. fac#2 addrl ursprunganfang (verschieben}/ temp. fac#2 addrl zeiger ende basic-text addrh indirekter index #2 addrl indirekter index #1 verschiebeschleife addrh indirekter index 11 addrl indirekter index #1 addrl indirekter index #2 verschiebeschleife addrh indirekter index #1 addrh indirekter index 12 verschiebeschleife basic-routine 'clr' Linkadressen berechnen addrl zeiger auf akt. term programmzeile einfügen hauptroutine basic-interpreter

670/710 basic-contrl hard+soft ass/reass.... seite 0028 zeile adr. obj.-code source-code 1017 1018 1019 1020 102' 1022 1023 1024 1025 1026 1027 1028 1029 1030 103' 1032 1033 1034 1035 1036 1037 1038 1039 1040 1047 1042 100 loh 1045 1046 100 1048 1049 1050 105' 1052 86!57 8659 865b 865d 865f 8661 8663 8664 8665 8667 8669 866a 866c 866e 8671 8673 8675 8677 8678 867a 867b 86 7d 867f 8681 8682 8684 8685 8686 8687 8689 86Bb 86Bd 86Bf 8691 8692 8694 a5 2f a4 30 85 67 84 68 65 Oe 90 01 c8 18 69 04 90 01 c8 85 64 84 65 20 15 88 ao oo a9 0 I 91 6d c8 91 6d c8 a5 lb 9' 6d a5 lc cb 91 6d cb 98 18 65 6d 85 6d 90 02 e6 6e a4 Oe 88 b' 85 91 6d 1053 8696 88 1054 8697 c6 Oe 1055 8699 do f7 1056 869b 1057 869b lda txtend ldy txtend+l sta hightr sty hightr l adc count bcc nodel I iny nodell clc adc 1$04 bcc nadele iny nadele sta highds sty highds+l jsr bltut ldy 1$00 lda 1$0 I sta {lowtr),y iny sta {lowtrl,y iny lda linnum sta llowtrl,y lda linnum+l iny sta llowtrl,y iny tya clc adc lowtr sta lowtr bcc main2 inc lowtr+l main2 ldy count dey stolop lda {txtptrl,y sta llowtrl,y dey dec count bne stolop 1058 869b ===> linkadr. berechnen, ready <=== 1059 1060 106' 1062 869b 869b 869e 86al 20 a4 86 20 40 Ba 4c ca 85 fini jsr lnkprg jsr runc jmp main addrl zeiger ende addrh zeiger ende addrl ursprungende temp.facll addrh ursprungende temp.facll allgemeiner zähler basic-text basic-text I verschieben)/ {verschieben)/ addrl zielende lverschiebenll temp. facll addrh zielende {verschieben/ temp. facll blockverschiebe-rout. für programm addrl ursprunganfang lverschiebenll temp. facl2 addrl ursprunganfang lverschiebenll temp.facl2 lo-byte akt. zeilennummer addrl ursprunganfang lverschiebenll temp.facl2 hi-byte akt. zeilennummer addrl ursprunganfang lverschiebenll temp. facl2 addrl ursprunganfang lverschiebenll temp. facl2 addrl ursprunganfang lverschiebenll temp.facl2 addrh ursprunganfang {verschieben) temp.facl2 allgemeiner zähler addrl zeiger auf akt. term addrl ursprunganfang lverschiebenll temp.facl2 allgemeiner zähler Linkadressen berechnen basic-zeiger ini ti tial., clr hauptroutine basic-interpreter

610/710 basic-contrl hard+soft ass/reass... seite 0029 zeile adr. obj.-code source-code 1063 1064 1065 1066 1067 1068 1069 1070 107 I 1072 1073 1074 86a4 86a4 86a4 86a4 86a4 86a6 86a8 86aa 86ac 86ad 86af 86bl ===> Linkadressen berechnen <=== a5 2d a4 2e 85 22 84 23 18 ao oo bl 22 do 05 c8 I 0 75 86b3 1076 86b4 bl 22 1077 86b6 fo lc 1078 86b8 ao 04 1079 1080 86ba 86bb c8 bl 22 1081 86bd do fb 1082 86bf c8 1083 86cO 98 1084 86cl 65 22 1085 86c3 aa 1086 86c4 ao 00 1087 86c6 9 I 22 1088 86c8 98 1089 86c9 65 23 1090 86cb c8 1091 86cc 9 I 22 1092 86ce 86 22 1093 86d0 85 23 1094 86d2 90 d9 1095 86d4 18 1096 86d5 a5 22 1097 86d7 a4 23 1098 86d9 69 02 1099 86db 90 01 1100 86dd c8 1101 86de 85 2f 1102 86e0 84 30 1103 1104 1105 1106 1107 86e3 1108 86e3 1109 86e5 II 10 86e7 1111 86e9 II 12 86eb II 13 86ed 1114 86ef II 15 86fl II 16 86f3 II 17 II 18 II 19 60 lnkprg lda txttab ldy txttab+l sta indexl sty indexl l clc chead ldy 1$00 lda lindexll,y bne chea3 iny lda I index I I, y beq lnkrts chea3 ldy 1$04 czloop iny lda lindexll,y bne czloop iny tya adc indexl tax ldy 1$00 sta lindexl I,y tya adc indexl+l iny sta lindexl I,y stx indexl sta indexl+l bcc chead lnkrts clc lda indexl ldy indexl+l adc 1$02 bcc lmkrtl iny lmkrtl sta txtend sty txtend+l rts 86e2 86e3 86e3 86e3 ===> eingabe einer zeile <=== 86f6 86f8 86fa a5 88 a4 89 a2 01 85 22 84 23 86 24 ao oo 84 Oe 20 ee bb c9 Od fo Oe a4 Oe inlin lda buffpt ldy buffpt+ I ldx #$01 sta indexl sty indexl+l stx indexl+2 ldy #$00 inlinc sty count jsr basin cmp #$0d beq fiminl ldy count addrl zeiger anfang basic-text addrh zeiger anfang basic-text addrl indirekter index II addrh indirekter index II addrl indirekter index II addrl indirekter index II addrl indirekter index II addrl indirekter index II addrl indirekter index II addrh indirekter index II addrl indirekter index II addrl indirekter index II addrh indirekter index II addrl indirekter index II addrh indirekter index II addrl zeiger ende addrh zeiger ende basic-text basic-text addrl zeiger auf eingabe-puffer addrh ze~ger auf eingabe-puffer addrl indirekter index II addrh indirekter index #I bank indirekter index II allgemeiner zähler eingabe I char vom akt. kanal Iehn-vektor) 00 in puffer, ausgabe cr+llfl allgemeiner zähler

610/710 basic-contrl hard+soft ass/reass.... seite 0030 zeile adr. obj.-code source-code 1120 B6fc 91 22 sta lindexl I, y addrl indirekter index II 1121 B6fe cb iny 1122 B6ff co a I cpy l$a I 1123 B101 90 ee bcc inlinc 1124 B703 4c B5 b7 jmp errlen ausgabe?string too long ready 1125 B106 1126 B106 1121 B706 ===> 00 in puffer, ausgabe cn(lfl <=== 112B B106 1129 B706., Oe fiminl ldy count allgemeiner zähl er 1130 B10B a9 00 lda 1$00 1131 B70a 91 22 sta lindexll,y addrl indirekter index 1132 B70c a5 Ia lda channl speieherstelle für aktiven " kanal 1133 B70e do 03 bne fimin I 113' B110 20 cb Be jsr ocrlf ausgabe er (df} auf akt. kanal 1135 B113 a4 23 fimin I ldy indexl+l addrh indirekter index 1136 B7 15 a6 22 ldx indexl addrl indirekter index " II 1137 B711 do 01 bne fimin2 113B B119 BB dey 1139 B71a ca fimin2 dex 1"0 B71b Ba txa IIH B71c a2 01 ldx 1$01 1"2 B7 le 60 rts 1143 B71f IIH B71f 1145 B71f ===> startadr. von prg.zeile berechnen <=== IH6 B11f IIH B71f a5 2d fndlin lda txttab addrl zeiger anfang basic-text IIU B12 I a6 2e ldx txttab+l addrh zeiger anfang basic-text IIU B123 1150 B123 1151 B723 1152 B123 ===> startadr. der zeile in lowtr <=== 1153 B123 B5 6d fndlnc sta lowtr addrl ursprunganfang (verschieben}/ temp. facl2 1154 B725 B6 6e stx lowtr+l addrh ursprunganfang (verschieben! temp. facl2 1155 B 12 7 ao 00 ldy 1$00 1156 B129 bl 6d lda (lowtrl,y addrl ursprunganfang (verschieben}/ temp. facl2 115 7 B12b do 05 bne fndln3 115B B12d cb iny 1159 B72e bl 6d lda llowtrl,y addrl ursprunganfang (verschieben}/ temp. facl2 1160 B130 fo Oa beq flnrt 116 I B732 ao 03 fndln3 ldy 1$03 1162 813, bl 6d lda (lowtrl,y addrl ursprunganfang I verschieben!/ temp. facl2 1163 8136 c5 lc cmp linnum+l hi-byte akt. Zeilennummer 1164 8738 fo 04 beq fndl20 1165 813a 90 Ob bcc affrts 1166 873c 18 flnrt clc 1167 813d 60 flnrts rts 1168 873e 1169 873e 1170 873e 88 fndl20 dey 1171 873f bl 6d lda llowtrl,y addrl ursprunganfang (verschieben}/ temp.facl2

610/710 basic-contrl hard+soft ass/reass.... seite 0031 zeile adr. obj. -code source-code 1172 1173 1174 1175 1176 1177 1178 1179 8741 8743 8745 8747 8749 874b 874c 814d c5 lb fo f8 bo f5 ao 01 bl 6d aa 88 bl 6d cmp linnum beq flnrts bcs flnrt a ffrts ldy 1$0 1 lda llowtr),y tax dey lda llowtr),y 1180 8 Hf 90 d2 bcc fndlnc 1181 8751 6c B8 02 xeqcm jmp ligone) 1182 8754 1183 8754 1184 1185 8754 8 754 ===> dispatcher-routine <=== 1186 8754 20 26 ba ngone jsr chrget 1187 8757 1188 8757 1189 1190 1191 1192 1193 1194 8757 8757 8757 875a 875a 875a ===> test gültiges befehlszeichen, weiter <=== lo-byte akt. Zeilennummer addrl ursprunganfang (verschieben)/ temp. facl2 addrl ursprunganfang (verschieben)/ temp. facl2 startadr. der zeile in 'lowtr' addrl dispateher nächstes zeichen nach ac lind.jmp) 20 a8 87 xeqdir jsr xeqcm3 basic-befehl ltoken in ac) ausführen ===> neues statement, stoptest <=== 1195 875a 1196 875a 20 el ff newstt jsr kstop test stop-taste 1197 875d do lc bne nsttl 1198 875f 38 sec 1199 8760 4c af 8b jmp stopc 1200 8163 1201 8763 1202 8163 1203 8765 1204 8767 1205 8768 1206 876a 1201 816c 1208 876f 1209 876f bl B5 do OB cb b 1 85 do 03 4c co 85 1210 876f ao 03 1211 8771 bl 85 1212 8773 85 42 1213 1214 1215 B715 8716 8 7 78 1216 877a 60 1217 877b 1218 877b 1219 1220 1221 1222 1223 871b 8 77e 8780 8182 8784 c8 bl 85 85 43 20 57 9d fo Oe a5 85 a4 86 B5 46 1224 8186 84 47 1225 8788 ba 1226 87B9 Be 9c 02 sav42 nstt3 lda I txtptr), y bne nstt4 iny lda { txtptr J, y bne nstt4 jmp ready ns t t4 ldy 1$03 lda { txtptr). y sta curlin iny lda {txtptr),y sta curlin+l rts nsttl nstt9 jsr tstdir beq nstt2 lda txtptr ldy txtptr+l sta oldtxt sty o1dtxt+1 tsx stx oldstk ansprung bei gedr. stop-taste, test 'trap 'break addrl zeiger auf akt. term addrl zeiger auf akt. term ausgabe ready ready-status addrl zeiger auf akt. term lo-byte akt. Zeilennummer addrl zeiger auf akt. term hi-byte akt. zeilennummer test direktmodus, hi-byt zeile=sff addrl zeiger auf akt. term addrh zeiger auf akt. term addrl zeiger letzter basic-befehl addrh zeiger letzter basic-befehl stack ze~ger vor 'trap ausführung

610/710 basic-contrl hard soft ass/reass.... seite 0032 zeile adr. obj.-code source-code 1227 87Bc ao 00 nstt2 ldy 1$00 1228 878e bl 85 lda ltxtptrj,y addrl zeiger auf akt. term 1229 8790 do 3f bne morsts 1230 8792 20 57 9d jsr tstdir test direktmodus, hi-byt zeile=$ff 1231 8795 fo d5 beq nsttj 1232 8791 ao 01 ldy 1$01 1233 8799 20 63 87 jsr sav42 1234 BT9c 98 tya 1235 879d 18 clc 1236 B79e 65 85 adc txtptr addrl zeiger auf akt. term 1237 87a0 85 85 sta txtptr addrl zeiger auf akt. term 1238 8 Ta2 90 ad bcc xeqcm 1239 8TH e6 86 inc txtptr l addrh zeiger auf akt. term 1240 8 7a6 do a9 bne xeqcm 1241 BTaB 1242 BTaB 120 87a8 ===> basic-befehl ltoken in acj ausführen <=== 12H B7a8 1245 87a8 fo 6a xeqcm3 beq ffrts 1246 8 Taa c9 ff xeqcm2 cmp l$ff 1241 87ac fo za beq snerrl ausgabe '?syntax error ready 1248 87ae 38 sec 1249 87af e9 80 sbc 1$80 1250 8 Tb I 90 lb bcc glet sprung zur basicrout. 'let' 1252 8Tb5 90 bcc nstt6 1251 87b3 c9 23 oa cmp 1$23 adr. der basic-routine auf stapel, ausführen 1253 8 TbT c9 4b cmp 1$4b 1254 8Tb9 90 ld bcc snerrl ausgabe '?syntax error ready 1255 8 7bb c9 67 cmp 1$6 7 1256 87bd bo 19 bcs snerrl ausgabe '?syntax error ready 1257 8 lbf e9 27 sbc 1$27 1258 87c I 1259 8 7c I 1260 Blc I ===> adr. der basic-routine auf stapel, ausführen <=== 126 I 8 Tc I 1262 87c I Oa nstt6 asl a 1263 8lc2 ab tay 1264 87c3 b9 28 80 lda stmdsp+ I, y adress-tabelle der basic-befehle 1265 8lc6 48 pha 1266 87c7 b9 27 80 lda stmdsp,y adress-tabelle der basic-befehle 126 7 8lca 48 pha 1268 87cb 4c 26 ba jmp chrget nächstes zeichen nach ac find.jmp} 1269 Blce 1270 8 Tee 1271 BTce 4c Ba 8d glet jmp let sprung zur basicrout. 'Let' 1272 8 7d I 1273 87d I 1274 87d I c9 3a morsts cmp #$3a 12 75 87d3 do 03 bne snerrl ausgabe '?syntax error ready 1276 87d5 51 87 4c jmp xeqcm 12 77 8 ld8 12 78 87d8 1279 87d8 4c 4f 97 snerr1 jmp snerr ausgabe '?syntax er rar. ready 1Z80 8 7db 128 I 87db 1282 Bldb ===> Stapel-suchroutine for-nextlgoto <=== 1283 87db

610/710 basic-contrl hard+soft ass/reass.... seite 0033 zeile adr. obj.-code source-code 1284 87db ba fndfor tsx 1285 81dc eb inx 1286 87dd eb inx 1281 81de eb inx 1288 87df eb inx 1289 8 1e0 1290 87e0 1291 81eO ===> nächstes stapel-byte <=== 1292 87e0 1293 87eO bd 01 0 I ffloop lda stack+ 1. x 6509 cpu-stack 1294 8 1e3 c9 81 cmp 1$81 1295 87e5 do 2d bne ffrts 1296 8 Te 7 a5 56 lda lstpnt+2 bank zeiger letzter string 1297 87e9 10 Of bpl cmpfor mit "for-next"-zeiger vergleichen 1298 8 7eb bd 02 01 lda stack+2.x 6509 cpu-stack 1299 87ee 85 54 sta lstpnt addrl zeiger letzter string 1300 8 1f0 bd 03 01 lda stack+3.x 6509 cpu-stack 1301 87f3 85 55 sta lstpnt+l addrh zeiger letzter string 1302 81f5 bd 04 0 I lda stack+4.x 6509 cpu-stack 1303 87f8 85 56 sta lstpnt+2 bank zeiger letzter string 1304 87fa 1305 87fa 1306 87fa ===> mit "for-next"-zeiger vergleichen <=== 1307 87fa 1308 87fa dd 04 01 cmpfor cmp stack+4,x 6509 cpu-stack 1309 87fd do Oe bne addfrs Stapelzeiger um 19 erhöhen 1310 87ff a5 55 lda lstpnt+l addrh zeiger letzter string 1311 8801 dd 03 0 I cmp stack+3,x 6509 cpu-stack 1312 8804 do 07 bne addfrs Stapelzeiger um 19 erhöhen 1313 8806 a5 54 lda lstpnt addrl zeiger letzter string 13" 8808 dd 02 01 cmp stack+2,x 6509 cpu-stack 1315 880b fo 07 beq ffrts 1316 880d 1317 880d 1318 880d ===> stapelzeiger um 19 erhöhen <=== 1319 880d 1320 880d Ba addfrs txa 1321 880e 18 clc 1322 880f 69 13 adc 1$13 1323 8811 aa tax 1324 8812 do cc bne ffloop nächstes stapel-byte 1325 88" 60 ffrts rts 1326 8815 1327 8815 1328 8815 ===> blockverschiebe-rout. für programm <=== 1329 8815 1330 8815 20 bo 88 bltut jsr reasnt test speicherplatz für programm 1331 8818 85 2f sta txtend addrl zeiger ende basic-text 1332 881a 84 30 sty txtend+l addrh zeiger ende basic-text 1333 881c 90 Oa bcc bltu blockverschiebe-rout. akt. bank 1334 881e 1336 881e 1335 881e variable <=== ===> blockverschiebe-rout. für 1337 881e 1338 881e 20 77 88 bltuv jsr reason test speicherplatz für variable 1339 8821 85 39 sta s trend addrl ende benutzter ram-bereich 1340 8823 84 Ja sty strend+l addrh ende benutzter ram-bereich 1341 8825 20 87 ba jsr mapvar umsch. auf bank I 2

610/710 basic-contrl hard+soft ass/reass... seite 003~ zeile adr. obj.-code source-code 1342 8828 1343 8828 1344 8828 ===> blockverschiebe-rout. akt. bank <=== 1345 8828 1346 8828 38 13~7 8829 a5 67 13~8 BB2b e5 6d 1349 882d 85 22 1350 B82f ab 1351 8830 a5 68 1352 8832 e5 6e 1353 8834 aa 1354 8835 eb I 355 8836 98 1356 8837 fo 23 1357 8839 a5 67 1358 883b 38 1359 883c e5 22 1360 883e 85 67 1361 8840 bo 03 1362 8842 c6 68 1363 88H 38 1364 8845 a5 64 1365 8847 e5 22 1366 8849 85 64 1367 884b bo OB 1368 884d c6 65 1369 884f 90 04 1370 8851 1371 8851 bltu bltl sec lda hightr sbc lowtr sta indexl tay lda hightr+l sbc lowtr+l tax inx tya beq decblt lda hightr sec sbc indexl sta hightr bcs blt I dec hightr+l sec lda highds sbc indexl sta highds bcs morenl dec highds+l bcc morenl 1372 8851 ===> verschiebeschleife <=== 1373 8851 1374 8851 bl 67 1375 8853 91 64 1316 8855 88 1377 8856 do f9 1378 8858 bl 67 1379 885a 91 64 1380 885c c6 68 1381 885e c6 65 1382 8860 ca 1383 8861 do f2 bltlp lda lhightrl.y sta I highds I. y morenl dey bne bl tlp lda lhightr),y sta (highdsl,y decblt dec hightr+l dec highds+l dex bne morenl addrl ursprungende (verschieben)/ temp. fact! addrl ursprunganfang (verschieben)/ temp.fact2 addrl indirekter index 11 addrh ursprungende (verschieben)/ temp. fact! addrh ursprunganfang (verschieben) temp. fact2 addrl ursprungende (verschieben)/ temp.factl addrl indirekter index #I addrl ursprungende (verschieben}/ temp. fac#l addrh ursprungende (verschieben)/ temp. fac#l addrl zielende lverschiebenl/ temp. fac# I addrl indirekter index #I addrl zielende!verschieben)/ temp. fac#l addrh zielende!verschieben/ temp. fac#l addrl ursprungende!verschieben!/ temp. fac#l addrl zielende (verschieben}/ temp. fac#l verschiebeschleife addrl ursprungende (verschieben!/ temp.fac#l addrl zielende (verschieben)/ temp. fac#l addrh ursprungende (verschieben)/ temp. fac#l addrh zielende!verschieben/ temp. fac#l

610/710 basic-contrl hard+soft ass/reass.... seite 0035 zeile adr. obj.-code source-code 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 8863 8866 8866 8866 8866 8866 886 7 8869 886b 886d 886e 8810 4c Be ba jmp mapusr umsch. auf bank I I ===> test stapelplatz <=== Oa 69 34 bo 07 85 22 ba e4 22 bo 3d 1396 8812 1397 1398 1399 8872 1400 8872 a2 50 1401 8874 4c 52 85 1402 8877 1403 1404 1405 getstk asl a adc t$34 bcs oserr sta indexl tsx cpx indexl bcs rearts 8812 8812 ===> ausgabe '?out of stack error ready <=== 8877 8877 88 77 1406 88 77 1407 8879 1408 887b 1409 88 1d "10 887f 1411 8881 "12 8882 1413 8884 14 14 8885 1415 8886 1416 8888 1417 8889 1418 888b 1419 88Be 1420 8890 1421 8891 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 8893 8894 8896 8897 8898 1433 88a6 1434 88a6 1435 BBa6 1436 143 7 oserr ldx #$50 jmp error ===> test speicherplatz für variable <=== c4 Je 90 34 do 04 c5 Jb 90 2e 48 az 09 98 48 b5 63 ca 10 fa 20 b5 ad a2 f7 68 95 6d e8 30 fa 68 ab 68 8899 c4 Je 889b 90 12 BB9d do 04 B89f c5 Jb BBa I 90 Oe 88a3 4c 50 85 88a9 88ab 20 Zc 99 85 54 84 55 reason cpy fretop+l bcc rearts bne trymor cmp fretop bcc rearts trymor pha ldx #$09 tya reasav pha!da jmper+2,x dex bpl reasav jsr garba2 ldx #$f1 reasto pla sta lowtr,x inx bmi reasto pla tay pla cpy fretop+l bcc rearts bne omerrc cmp fretop bcc rearts omerrc jmp omerr sa v 73 sav74 jsr ptrget sta lstpnt sty lstpnt+l ausgabe '?out of stack error addrl indirekter index tl addrl indirekter index #I ind. jmp zur Fehlerroutine addrh top of string free space addrl top of string free space addrh sprung zu functions-rout. garbage collect lmüll entfernen) ready addrl ursprunganfang (verschieben)/ temp. facll2 addrh top of string free space ausgabe '?out of memory error ready addrl top of string free space ausgabe '?out of memory error ready variable suchen/anlegen, deren name folgt addrl zeiger letzter string addrh zeiger letzter string

610/110 basic-contrl hard+soft ass/reass.... seite 0036 zeile adr. obj.-code source-code 1438 81ad 86 56 1439 8Baf 60 1440 88b0 1441 88b0 1442 88b0 IH3 88b0 1444 88b0 c4 89 IH5 88b2 90 fb IH6 88b4 do 04 1447 8Bb6 c5 88 IH8 88b8 90 f5 1449 88ba a2 56 1450 88bc 4c 52 85 1451 8Bbf 1452 88bf 1453 88bf 6c 84 02 1454 88cZ 1455 BBcZ stx lstpnt 2 rearts rts ===> test speicherplatz für programm <=== reasnt cpy buffpt+l bcc rearts bne omerrt cmp buffpt bcc rearts omerrt ldx 1$56 jmp error crunch jmp (icrnch} 1456 88c2 ===> umwandlung text in basic-tokens <=== 1457 88c2 1458 88c2 1459 88c4 1460 88c5 1461 88c1 1462 88c8 a5 85 48 a5 86 48 zo 29 ba 1'63 B8cb 'c dl 88 14H 88ce 1465 88ce 1466 BBce 20 26 ba 1467 88dl 90 fb 1468 8Bd3 c9 oo 1469 IHO 1471 1412 IHJ 1474 1475 1416 1477 14 78 1479 1480 1481 1482 1483 1484 8Bd5 8Bd1 8Bd9 8Bdb BBdd 8Bdf 88el 88e3 88e5 8Be7 8Be9 8Beb 8Bed BBef BBfl BBH fo 59 c9 Ja fo f3 c9 Jf do OB a9 99 ao 00 91 85 fo e7 c9 80 90 Ob c9 ff fo df ao 01 20 3f 89 fo dz 1485 8Bf6 1486 88f6 1487 8Bf6 1488 8Bf6 1489 8Bf6 c9 22 1490 8Bf8 do Od 1491 BBfa 20 26 ba 1492 88Fd c9 00 1493 88ff fo Zf 149' 8901 c9 22 ncnnch lda txtptr pha lda txtptr l pha crun05 jsr chrgot jmp crunzo crunio jsr chrget crun20 bcc crunio cmp 1$00 beq crun90 cmp l$3a beq crunio cmp l$3f bne crun30 lda 1$99 ldy 1$00 sta ltxtptr},y beq crunio crun30 cmp 1$80 bcc crun40 cmp l$ff beq crunio ldy 1$01 jsr kloop beq crun05 ===> tokenroutine, test - <=== crun40 cmp 1$22 bne crun60 crun50 jsr chrget cmp 1$00 beq crun90 cmp 1$22 bank zeiger letzter string addrh Zeiger auf eingabe-puffer addrl zeiger auf eingabe-puffer ind. jmp zur fehlerroutine addrl token-umwandlungsroutine addrl zeiger auf akt. term addrh zeiger auf akt. term letztes zeichen erneut nach ac!indirekter sprung} nichstes zeichen nach ac (ind.jmpl token-umwandlung ende addrl zeiger auf akt. term tokenroutine, test - nächstes zeichen nach ac lind.jmpj token-umwandlung ende

610/710 basic-contrl hard+soft ass/reass.... seite 0037 zeile adr. obj.-code source-code 1495 1496 1497 149B 1499 1500 1501 1502 1503 1504 1505 1506 1507 150B 1509 1510 1511 B903 B905 B907 B90a B90c B90e B910 B913 8915 B917 B919 B91b 891d B91f 8921 B924 8927 1512 B92a 1513 B92a fo c9 do f3 20 57 B9 90 c2 co 00 fo 03 20 3f 89 a5 Oe ao 00 91 B5 c9 Bf fo Od c9 B3 do ad 20 26 ba 20 df Be 4c cb BB beq crunio bne crun50 crun60 jsr reser bcc crunio cpy #$00 beq crun70 jsr kloop crun70 lda count ldy #$00 sta ltxtptrj,y cmp #$Bf beq crunbo cmp #$B3 bne crunio jsr chrget jsr data jmp crun05 1514 B92a 20 26 ba crunbo jsr chrget 1515 B92d 20 77 Be jsr rem 1516 B930 1517 B930 151B B930 ===> token-umwandlung ende <=== 1519 B930 1520 B930 1521 B932 1522 B933 1523 B935 1524 B936 a6 B5 6B B5 B6 6B B5 B5 1525 B93B 3B 1526 B939 Ba 1527 B93a e5 B5 1528 B93c ab 1529 B93d c8 1530 B93e 60 1531 B93f 1532 893f 1533 893f 18 1534 B940 98 1535 B941 1536 B90 153 7 B945 153B B947 1539 B949 1540 B94b 1541 894d 1542 B94d 65 B5 85 22 a5 86 69 00 85 23 ao 00 crun90 ldx txtptr pla sta txtptr+l pla sta txtptr sec txa sbc txtptr tay kloop ~ny rts clc tya adc txtptr sta indexl lda txtptr+l adc #$00 sta indexl+l ldy #$00 1543 B94d ===> zeiger "indexl nach "txtptr" <=== 15H 894d 1545 894d 1546 89H 1547 B951 154B 8952 1549 8954 1550 8956 1551 B957 b I 22 91 85 cb c9 00 do f7 60 kloop2 lda lindexll.y sta ltxtptri.y iny cmp #$00 bne kloop2 rts akt text mit befehlsworttabelle vergleichen allgemeiner zähler addrl zeiger auf akt. term nächstes zeichen nach ac lind.jmp/ basic-routine "data" nächstes zeichen nach ac lind.jmpl basic-routine rem addrl zeiger auf akt. term addrh zeiger auf akt. term addrl zeiger auf akt. term addrl zeiger auf akt. term addrl zeiger auf akt. term addrl indirekter index #I addrh zeiger auf akt. term addrh indirekter index #I addrl indirekter index #I addrl zeiger auf akt. term zeiger "indexl nach "txtptr"

610/710 basic-contrl hard+soft ass/reass.... seite 0038 zeile adr. obj.-code source-code 1552 8957 1553 8957 ===> akt text mit befehlsworttabelle vergleichen <=== 1554 8957 1555 8957 a9 80 reser lda S80 1556 8959 ao ef ldy l$ef 1557 895b 85 23 sta index!+! addrh indirekter index.i 1558 895d 84 22 sty indexl addrl indirekter index 1559 895f ao 00 ldy soo " 1560 8961 84 Oe sty count allgemeiner zähler 156 I 8963 88 dey 1562 8964 cb reseio iny 1563 8965 bl 85 rese20 lda ltxtptrl,y addrl zeiger auf akt. term 1564 896 7 38 sec 1565 8968 ft 22 sbc lindex!j,y addrl indirekter index 1 1566 896a fo f8 beq reseio 1567 896c c9 80 cmp S8o 1568 896e fo 18 beq rese60 1569 8970 20 64 ba rese30 jsr ldily lade lindex!j,y in ac!570 8973 30 03 bmi rese40 1571 8975 es iny 1572 8976 do f8 bne rese30 1573 8978 c8 rese40 iny 1574 8979 e6 Oe inc count allgemeiner zähler 1575 897b 18 clc 1576 897c 98 tya 1577 897d 20 19 ab jsr sav14 1578 8980 18 clc 15 79 8981 ao 00 ldy Soo 1580 8983 20 64 ba jsr ldi!y lade I index I I, y in ac 158 I 8986 do dd bne rese20 1582 8988 05 Oe rese60 count ora allgemeiner zähler 1583 898a 85 Oe sta count allgemeiner zähler 1584 898c 60 rts 1585 898d 1586 898d.end 1587 898d.lib bverbs I

610/710 basic-bverbsl hard+soft ass/reass.... seite 0039 zeile adr. obj.-code source-code 1589 898d 1590 898d ===> basic-routine 'list' <=== 1591 898d 1592 1593 1594 1595 1596 898d 20 f4 af list 8990 do 01 8992 60 8993 8993 jsr range bne 1stend rts 1597 8993 ===> pla,pla, test auf basic-textende <=== 1598 8993 1599 8993 68 1stend pla 1600 8994 68 pla 1601 8995 1602 8995 1603 8995 ===> test basic-textende erreicht <=== 1604 8995 1605 8995 ao 01 list4 ldy ISO I 1606 1607 8997 8999 84 13 bl 6d sty dores lda (lowtrl,y 1608 1609 1610 1611 1612 1613 899b 899d 899e 89a0 89a2 89a2 do 05 88 b I 6d fo 4c bne listh dey lda I lowtr I, y beq grody 1614 89a2 ===> stop-taste abfragenlausführen <=== 1615 89a2 1616 1617 1618 1619 1620 89a2 89a4 89a7 89a9 89aa ao 01 20 e I ff do 04 18 4c af 8b listh ldy 1$01 jsr kstop bne list5 clc jmp stopc 1621 89ad 1622 89ad 1623 89ad ===> ausführung 'list' <=== 1624 89ad 1625 89ad 20 c8 Be list5 jsr ocrlf 1626 89b0 c8 iny 1627 89bl b I 6d lda llowtrl,y 1628 1629 1630 89b3 89b4 89b5 aa c8 b! 6d tax iny lda I lowtr I, y zeilenbereich einlesen, test gültig pla,pla, test auf basic-textende flag für token o. ascii/garbage-flag addrl ursprunganfang (verschieben}/ temp. facl2 stop-taste abfragenlausführen addrl ursprunganfang (verschieben}/ temp. facl2 sprung nach ready test stop-taste ausführung 'list' ansprung bei gedr. stop-taste, test 'trap' 'break' ausgabe er (+lfl auf akt. kanal addrl ursprunganfang (verschieben}/ temp. facl2 addrl ursprunganfang (verschieben}/ temp.facl2 1631 1632 89b7 89b9 c5 lc do 04 cmp linnum+l bne tstdun hi-byte akt. Zeilennummer carry= 1 ready, sonst test ob letzte prg.zeile llistl 1633 1634 89bb 89bd e4 lb fo 02 cpx linnum beq typlin lo-byte akt. Zeilennummer test ob letzte prg.zeile llistl 1635 89bf 1636 89bf 1637 89bf ===> carry=1 ready, sonst test ob letzte prg.zeile (listl <=== 1638 89bf 1639 89bf bo 2d 1640 89c I tstdun bcs grody sprung nach ready

610/110 basic-bverbsl hard soft ass/reass.... seite 0040 zeile adr. obj.-code source-code 1641 1642 1643 16H 16U 16U I6H 16U 1649 1650 1651 1652 1653 1654 1655 1656 1651 1658 89cl 89cl 89cl B9cl B9c3 B9c6 89c8 89ca 89cc 89cc 89cc 89cc 89cc 89cf 89d1 89d3 B9d5 89d1 1659 89d9 1660 89d9 166 I 89d9 1662 89d9 1663 89d9 1664 89da 1665 89dc 1666 1661 1668 1669 1610 1671 1612 1613 89de 89e0 89el 89e3 89e4 89e5 89e1 89e9 ===> test ob letzte prg.zeile llistl <=== typlin sty lstpnt jsr linprt prit4 lda 1$20 ldy lstpnt and l$1f ===> ausgabe I zeichen von ac, test <=== 20 3a b5 ploop C9 22 do 06 15 13 49 ff 85 13 jsr ochr cmp 1$22 bne ploopl lda dores eor 1$ff sta dores ===> test ob zeilenende erreicht <=== c8 fo 12 bl 6d do II ab bl 6d aa c8 bl 6d 86 6d 85 6e ploopl iny beq grody lda llowtrl,y bne qplop tay lda (lowtrl,y tax iny lda llowtrl,y stx lowtr sta lowtr+1 1674 89eb 4c 95 89 jmp lish 1675 89ee 1616 89ee 1677 89ee 4c co 85 grady jmp ready 1618 89fl 1619 89t'l 1680 89fl 6c 86 02 qplop jmp (iqplopl 1681 89f4 1682 89f4 1683 89f4 1684 89f4 1685 89f4 10 d6 nqglop bpl ploop 1686 89f6 c9 ff cmp 1$ff 1687 89f8 fo d2 beq ploop 1688 89fa 24 13 bit dares 1689 89fc 30 ce bmi ploop 1690 89fe aa tax 1691 89ff 8454 sty lstpnt 1692 BaOI ao 80 ldy 1$80 ===> umwandlung basic-tokens in text <=== addrl zeiger letzter string umw. hex/dez, lo=xr, hi=ac, druck zeilen I addrl zeiger letzter string ausgabe 1 zeichen lin acl test ob zeilenende erreicht flag für token o. ascii/garbage-flag flag für token o. ascii/garbage-flag sprung nach 'ready addrl ursprunganfang lverschiebenl/ t-p.facl2 umwandlung basic-tokens in text addrl ursprunganfang (verschieben]/ temp. f'acl2 addrl ursprunganfang (verschieben]/ temp. flcl2 addrl ursprunganfang lverschiebenll temp.facl2 addrh ursprunganfang (verschieben/ temp. facl2 test basic-textende erreicht sprung nach 'ready' addrl taken ausgabe expander rout. ausgabe zeichen von ac. test ausgabe zeichen von ac, test flag für token o. ascii/garbage-flag ausgabe 1 zeichen von ac, test addrl zeiger letzter string

61D/71D basic-bverbsl hard+soft ass/reass.... seite DD41 zeile adr. obj.-code source-code 1693 BaDJ B4 23 1694 BaD5 ad ef 1695 BaD7 B4 22 1696 BaD9 ad DD 1697 BaDb Da 169B BaDe fd II 1699 BaDe I 7DD BaDe sty indexl+l ldy l$ef sty indexl ldy I$DD asl a beq prit3b 17DI BaDe ===> text zu token aus "res1st suchen <=== 17D2 BaDe I 7D3 17D4 I 7D5 17D6 170 7 170B I 709 I 710 Ba Oe BaOf Ba II Ba 13 Bal5 Ba I 7 Bala Balc ca 10 Od e6 22 do 02 e6 23 20 64 ba 10 f5 30 fo resrch dex bpl prit3 rescrl inc indexl bne restr2 inc indexl+l restr2 jsr ldily bpl rescrl bmi resrch addrh indirekter index II addrl indirekter index II textausgabe zu token aus reslst" addrl indirekter index II addrh indirekter index II lade tindexll,y in ac text zu token aus res1st' suchen 1711 Bale 1712 Bale 1713 Bale ===> textausgabe zu token aus reslst" <=== 1714 Bale 1715 8ale cb prit3 iny I 716 Balf 20 64 ba prit3b jsr ldily lade {indexll,y in ac I 7 IB ausgabe I zeichen {in acl 1719 8a27 do f5 bne prit3 textausgabe zu token aus reslst" I 7 I 7 Ba22 Ba24 3D a4 2D Ja b5 bmi prit4 jsr ochr 1720 Ba29 1721 Ba29 1722 Ba29 ===> basic-routine 'new' <=== 1723 Ba29 scrath scrtch 1724 1725 Ba29 8a2b do 64 a9 oo bne stkrts lda 1$00 1726 Ba2d ab tay 172 7 Ba2e 91 2d sta ltxttabl,y addrl zeiger anfang basic-text 1729 172B BaJO Ba31 cb 91 2d iny sta {txttab},y addrl zeiger anfang basic-text 1730 Ba33 18 clc I 731 Ba34 a5 2d lda txttab addrl zeiger anfang basic-text 1732 Ba36 69 02 adc 1$02 1133 Ba38 85 2f sta txtend addrl zeiger ende basic-text 1734 Ba Ja a5 2e lda txttab+ 1 addrh zeiger anfang basic-text 1735 Ba Je 69 00 adc 1$00 1736 Ba Je 85 30 sta txtend+ 1 addrh zeiger ende basic-text 1737 8a40!73B 8a40 1739 Ba40 1740 Ba40 1741 Ba40 1742 Ba43 1143 Ba45 1744 8a45 1745 8a45 1746 8a45 1747 8a45 17U BaH 1749 8a47 1750 BaH ===> basic-zeiger inititial., 20 bb b4 runc a9 00 jsr stxtpt lda 1$00 clr <=== ===> basic-routine clr zero=o rts <=== do 48 clear bne stkrts ===> basic-routine 'clr' <=== programmzeiger auf start

610/710 basic-bverbsl hard+soft ass/reass...... seite OOH zeile adr. obj. -code source-code 1751 BaH 17!2 8aH 20 18 bb clearc jsr settop I 7!JJ 8ah a9 ff lda l$ff 1754 8a4c Bd 97 02 sta trapno+ I addrh zeiger error trap 1755 8aH a2 03 ldx 1$03 1756 8a51 bd 90 Ba clrpu lda pudefs,x printusing zeichen 1757 8a54 9d 73 02 sta pufill,x print using: füllzeichen 1758 8aH ca dex 1159 Ba 58 10 f7 bpl clrpu I 760 8a5a a9 Of lda l$0f I 76 I 8a5c Bd 57 02 sta dfbank vorgabe für bank-nummer 1762 Ba5f a9 00 lda 1$00 1163 8a61 85 16 s ta dsdesc länge disc-status string I 764 8a63 20 16 bc jsr clall alle logischen files schliessen I 765 8a66 a5 31 lda vartab addrl zeiger anfang einfache variable I 766 8a68 a4 32 ldy vartab+ I addrh zeiger anfang einfache variable I 767 8a6a 85 39 sta strend addrl ende benutzter ram-bereich 1768 8a6c 84 Ja sty strend+l addrh ende benutzter ram-bereich I 169 8a6e 85 35 sta arytab addrl zeiger anfang array-tabelle 1170 Ba 10 84 36 sty arytab l addrh zeiger anfang array-tabelle I 771 8a72 1772 8a72 1773 8a72 ===> reset read"-,stack-,befehl-zeiger <=== 1774 Ba T2 1775 8a72 20 97 Bb fload jsr resto I read -zeiger auf basicanfang I 7T6 Ba T5 1777 8a75 1778 8175 ===> reset stack- u. basicbefehl-zeiger <=== f1t9 Ba T5 1180 Ba 15 a2 00 stkini ldx #$00 I 78 I Ba 77 86 ld stx temmpt zeiger auf zeitw. stringdescriptor (rel. offset J 1182 Ba T9 68 pla I 783 8a7a ab tay 1784 Ba Tb 68 pla 1785 8a7c a2 fe ldx #$fe 1186 Ba Te 9a txs f18t 8a7f H pha 1188 BaBO 98 tya I 789 8a81 H pha 1190 Ba82 a9 00 lda 1$00 1791 8a84 85 46 sta oldtxt addrl zeiger letzter basic-befehl 1192 8a86 85 H sta oldtxt+l addrh zeiger letzter basic-befehl 1793 8a88 85 Ia sta channl speieherstelle für aktiven kanal 1194 Ba Ba Bd 58 02 sta dolu vorgabe für ausgabe-adresse 1795 BaBd 85 sta subflg flag für indizierte variable 1196 8a8f 60 stkrts rts " 1797 8a90 1198 8a90 1799 8a90 ===> printusing Zeichen <=== 1800 8a90 1801 Ba90 20 2c 2e pudefs.byte.. $. 1801 8a93 24 1802 8a94 1803 Ba94 1804 8a94 ===> basic-routine 'for' <===

610/710 basic-bverbsl hard+soft ass/reass.... seite 0043 zeile adr. obj.-code source-code IB05 IB06 I BOT I BOB IB09 IB 10 IBII IBI2 Ba94 Ba94 Ba96 Ba9B Ba9b Ba9e BaaO Baal a9 BO B5 14 20 Ba Bd 20 db B1 do 05 Ba 69 10 for IB 13 Baa3 aa IB 14 Baa4 9a IBI5 Baa5 6B notol pla IB 16 Baa6 6B IBI1 Baa7 a9 09 IBIB Baa9 20 66 BB IBI9 Baac 20 ed Be IB20 Baaf IB IB21 BabO 9B 1822 IB23 1824 IB25 1826 IB27 IB28 IB29 IB30 IB31 1832 Babl Bab3 Bab4 Bab6 Bab8 Bab9 8abb Babc 8abe Babf 8acl 65 85 48 a5 B6 69 00 48 a5 43 4B a5 42 4B a9 a4 20 32 9 7 lda ti$bo sta subflg jsr let jsr fndfor bne notol txa adc tl$10 tax txs pla lda 1$09 jsr getstk jsr datan clc tya adc txtptr pha lda txtptr+l adc 11$00 pha lda cur lin +I pha lda curlin pha lda #$a4 jsr synchr IB33 1834 IB35 1836 183 7 1838 1839 IB40 1841 IB42 IB43 IBH 1845 8ac4 Bac7 Baca 8acc 8ace 8ad0 Bad2 Bad4 Bad6 BadB Ba da Badd Badd 20 04 b5 20 01 b5 a5 76 09 7f 25 12 B5 12 a9 dd ao Ba B5 22 84 23 4c 6d 96 jsr chknum jsr frmnum lda facsgn ora ll$7f and facho sta facho lda l$dd ldy #$Ba sta indexl sty indexl+l jmp forpsh IB46 Badd ===> step mit I vorbesetzen <=== IB41 IB48 1849 IB50 IB51 1852 1853 1854 1855 IB56 185 7 IB58 Badd Badd Badf Bael 8ae4 Bae1 Bae9 a9 9c ao 9f 20 66 a I 20 29 ba c9 a9 do 06 ldfone lda ll$9c ldy l$9f jsr movfm jsr chrgot cmp l$a9 bne oneon flag fur indizierte variable basic-routine 'let' stapel-suchroutine for-next/goto test stapelplatz trennzeichen ':, zeilenende o suchen, offset yr addrl Zeiger auf akt. term addrh zeigerauf akt. term hi-byte akt. Zeilennummer lo-byte akt. Zeilennummer test:folgt asc~i o. token im akt. text, sonst error prüfen, ob numerische variable numerischen ausdruck holen fac II: Vorzeichen fac II: mantisse fac 111: mantisse addrl indirekter index II addrh indirekter index #I vari adr.lo=ac, hi=yr nach fac #I letztes zeichen erneut nach ac (indirekter sprungl vorzeichen, string-zeiger, 'for'-token auf stapel nächstes zeichen nach ac (ind.jmpl numerischen ausdruck holen Baeb Baee 20 26 ba 20 01 b5 jsr chrget jsr frmnum Bafl Bafl 8afl ===> vorzeichen, string-zeiger, 'for'-token auf stapel <===

610/710 basic-bverbsl hard+soft ass/reass.... seite OOH zeile adr. obj.-code source-code 1859 Bafl 1860 Bafl 20 02 az oneon jsr sign Vorzeichentest fac ttl 186 I 8aH 20 5e 96 jsr pushf 1862 8af7 a5 56 lda lstpnt+z bank zeiger letzter string 1863 8af9 48 pha 1864 Bafa a5 55 lda lstpnt+l addrh zeiger letzter string 1865 Bafc 48 pha 1866 8afd a5 54 lda lstpnt addrl zeiger letzter string 186 7 8aff 48 pha 1868 BbOO a9 81 lda tt$81 1869 BbOZ 48 pha 1870 8b03 4c 5a 87 jmp newstt neues statement, stoptest 1871 8b06 1872 8b06 1873 8b06 ===> basic-routine next' <=== 18 74 8b06 1875 8b06 do 04 next bne getfor basic-routine 'next' mit variable 1816 8b08 az ff ldx #$ff 18 77 8b0a 30 03 bmi stxfor basic-routine 'next' mit wert 1878 BbOc 1879 8b0c 1880 BbOc ===> basic-routine next' mit variable <=== 188 I 8b0C 1882 8b0c zo Zc 99 getfor jsr ptrget variable suchen/anlegen, deren name folgt 1883 8b0f 1884 BbOf 1885 8b0f ===> basic-routine next' mit wert <=== 1886 BbOf 1887 8b0f 20 a9 88 stxfor jsr savh 1888 8bl2 20 db 87 jsr fndfor stapel-suchroutine for-next/goto 1889 8bl5 fo 05 beq havfor 1890 Bb 17 az 28 ldx tt$28 1891 8bl9 4c 52 85 jmp error ind. jmp zur fehlerroutine 1892 Bblc 1893 8blc 1894 8blc 9a havfor txs 1895 8bld Ba txa 1896 Bble 18 clc 1897 8blf 69 05 adc tt$05 1898 8b21 48 pha 1899 8b22 69 06 adc tt$06 1900 8b24 85 25 sta indexz addrl indirekter index #2 1901 8b26 68 pla 1902 8b21 ao 0 I ldy #$01 1903 8b29 20 66 a 1 jsr movfm vari adr.lo=ac, hi=yr nach fac #I 1904 8b2c ba tsx 1905 8b2d bd oa 01 lda stack+io,x 6509 cpu-stack 1906 8b30 85 76 sta facsgn fac #1: vorzeichen 1907 8b32 a5 54 lda lstpnt addrl zeiger letzter string 1908 8b34 a4 55 ldy lstpnt+l addrh zeiger letzter string 1909 8b36 a6 56 ldx lstpnt+2 bank zeiger letzter string 1910 8b38 20 5e ao jsr ucnupk 19" 8b3b 20 4d 9e jsr faddt basic-routine + (dez. add. J 19 IZ Bb3e zo 9f a I jsr movvf gk-zahl aus fac in variable 1913 8b41 ao 01 ldy #$01 19" 8b43 20 34 a2 jsr fcompn 1915 8b46 ba tsx

6101710 basic-bverbsl hard soft asslreass... seite 0045 zeile adr. obj.-code source-code 1916 1917 1918 BbH 8MB 8Mb 193 7 Bb6c 1938 Bb6e 1939 Bb70 1940 Bb73 1941 Bb76 1942 8b79 190 Bb79 38 fd Oa 01 fo 17 c9 2c do fl 20 26 ba 20 Oe Bb 4c 0 I b5 sec sbc stack.,o,x beq loopdn cmp l$2c bne newsgo jsr chrget jsr getfor jmp frmnum 1944 Bb79 ===> basic-routine restore <=== 1945 8b79 1946 8b79 fo lc restor beq restot 1947 Bblb 20 e5 b4 jsr getpin 1948 1949 1950 1951 1952 1953 1954 1955 1956 Bble 8b80 8b82 8b85 Bb88 8b8a 8b8c 8b8e 8b90 84 lb 85 tc 20 Be ba 20 I f 87 90 lb a5 6d e9 o I 85 4b a5 6e sty linnum sta linnum l jsr mapusr ]Sr fndlin bcc reserr lda lowtr sbc 1$01 sta datptr lda lowtr l sbc 1$00 sta datptr+ I rts 6509 cpu-stack daten vom stack, folgt nächstes for-next 6509 cpu-stack lo-byte akt. Zeilennummer 6509 cpu-stack hi-byte akt. Zeilennummer 6509 cpu-stack addrl zeiger auf akt. term 6509 cpu-stack addrh zeiger auf akt. term neues statement, stoptest 1919 1920 1921 1922 1923 1924 1925 1926 192 7 8b4d 8b50 Bb52 8b55 8b57 Bb5a Bb5c 8b5f Bb61 bd 10 0 I 85 H bd I I 01 85 0 bd 13 0 I 85 85 bd 12 01 85 86 4c 5a 8 7 lda stack 16,x sta curlin lda stack l7,x sta curlin l lda stack 19,x sta txtptr lda stack IB,x sta txtptr l newsgo jmp newstt 1928 8b64 1929 1930 ===> daten vom stack, folgt bearb. nächstes for-next <=== 1931 1932 Bb64 Ba loopdn txa 1933 Bb65 69 12 adc 1$12 1934 Bb67 aa tax 1935 8b68 9a txs 1936 Bb69 20 29 ba jsr chrgot letztes zeichen erneut nach ac (indirekter sprung} 1957 1958 Bb92 8b94 e9 00 85 4c 1959 Bb96 60 1960 8b97 1961 8b9l 1962 8b97 1963 8b9l 1964 8b9l 38 1965 Bb98 a5 2d 1966 Bb9a e9 o I 1967 Bb9c 85 4b 1968 8b9e a5 2e ===> 'read'-zeiger auf basicanfang <=== restot sec lda txttab sbc 11$01 sta datptr lda txttab l bearb. nächstes zeichen nach ac (ind.jmpl basic-routine 'next' mit variable numerischen ausdruck holen 'read'-zeiger auf basicanfang dezimal-zahl in klammer nach linnum einlesen lo-byte akt. zeilennummer h~-byte akt. Zeilennummer umsch. auf bank # I startadr. von prg.zeile berechnen addrl ursprunganfang (verschieben}/ temp. facl2 addrl zeigerauf data nach 'read' addrh ursprunganfang (verschieben} temp.facl2 addrh zeiger auf data nach 'read' addrl zeiger anfang basic-text addrl zeiger auf data nach 'read' addrh zeiger anfang basic-text

610/710 basic-bverbsl hard+soft ass/reass... seit& 0046 zeile adr. obj.-code source-code 1969 8ba0 e9 00 sbc 11$00 1970 8ba2 85 4c stl datptr+l 1971 8ba4 60 runmfo rts 1912 8ba5 1973 8ba5 1974 8ba5 4c cd Be reserr jmp userr 1915 1976 1971 1978 8ba8 8ba8 8bd 8ba8 ===> basic-routine 'stop' <=== 1979 8ba8 bo 01 stop bcs stpz2 1980 llbaa 1981 8baa 1982 8baa ===> basic-routine end' <=== 1983 llbu 1984 1985 1916 8baa 8bab 8bad 18 do 59 fo 14 end stpz2 clc bne contx beq stopd 1987 8b1f 1988 8blf 1919 llbaf 1990 8baf 1991 8baf 08 stopc php 1992 llbbo ac 97 02 ldy trapno+ I 1993 8bb3 c8 iny 1994 8bb4 fo Oa beq sa addrh zeigerauf data nach 'read' ausgabe '?undefined statement error' ready ===> ansprung bei gedr. stop-taste, test 'trap' 'break' <=== addrh zeiger error trap ausführuns 'break' 1995 8bb6 1996 8bb6 1997 llbb6 ===> bei 'trap warten auf stop, error-routine <=== 1998 llbb6 1999 8bb6 20 e I ff unstop jsr kstop 2000 llbb9 fo fb beq unstop 2001 2002 2003 2004 2005 2006 2001 20011 2009 2010 2011 2012 2013 2014 2015 2016 2011 2018 2019 zozo 2021 2022 2023 8bbb 8bbd 8bc0 8bc0 8bc0 llbco 8bc0 Bbcl 8bc2 8bc3 llbc4 8bc7 8bc9 II beb 8bcd Bbcf Bbdf Bbd3 llbd5 Bbd7 8bd9 llbd9 8bd9 a2 IC 4c 52 85 ldx l$1c jmp error ===> ausführuns 'break' <=== 28 48 48 08 20 57 9d (0 10 a5 85 a4 86 85 46 8447 a5 42 a4 43 85 u 84 45 sa stopd plp pha pha php jsr tstdir beq nsxx4 lda txtptr ldy txtptr+f sta oldtxt sty oldtxt+! lda curlin ldy curlin+! sta oldlin sty oldlin+! test stop-taste bei 'trap' warten auf stop, error-routine ind. jmp zur Fehlerroutine test direktmodus, hi-byt zeile=$ff plp, pla, pla, carry =0 ready, sonst ausgabe 'break' addrl zeiger auf akt. term addrh zeiger auf akt. term addrl zeiger letzter basic-befehl addrh zeiger letzter basic-befehl lo-byte akt. Zeilennummer hi-byte akt. zeilennummer lo-byte vorige zeilennummer (stopl hi-byte vorige zeilennummer lstop} ===> plp, pla, pla, carry =0 ready, sonst ausgabe 'break' <===

610/710 basic-bverbsl hard+soft ass/reass.... seite 0047 zeile adr. obj.-code source-code 2024 2025 2026 2027 2028 2029 2030 2031 2032 2046 8bf8 204 7 8bf8 2048 BbfB 2049 Bbfa 2050 Bbfc 2051 Bbfe 2052 BcOO 2053 8c02 2054 8c04 8bd9 8bd9 28 8bda 68 8bdb 68 8bdc 90 08 8bde az lc 8be0 20 c3 a3 8be3 4c ab 85 8be6 nsxx4 plp pla pla bcc nsxx6 ldx l$1c jsr msg jmp errfin 2033 8be6 2034 8be6 4c co 85 nsxx6 jmp ready 2035 8be9 2036 8be9 2037 8be9 2038 8be9 2039 8be9 do lb cont bne contx 2040 8beb a4 H ldy oldtxt+l 204 I 8bed do 09 bne contz3 2042 8bef a5 46 lda oldtxt 2043 Bbfl do 07 bne contz4 ZOH 8bf3 a2 48 ldx 1$48 2045 8bf5 4c 52 B5 jmp error ===> basic-routine 'cont' <=== a5 46 B5 85 B4 B6 a5 H a4 45 B5 42 B4 0 2055 8c06 60 2056 Bc07 2057 Bc07 205B Bc07 2059 8c07 contz3 lda oldtxt contz4 sta txtptr sty txtptr+1 lda oldlin ldy oldlin+ 1 sta curlin sty curlin+l contx rts ===> basic-routine 'run' <=== 2060 Bc07 20 17 Be run 2061 8c0a 20 29 ba 2062 BcOd do 03 2063 BcOf 4c 40 Ba 2064 BeiZ 2065 8cl2 2066 Bc12 2067 8cl2 206B BeiZ 20 47 Ba run2 2069 Bc15 fo 22 2070 Bc17 2071 8c17 jsr runmod jsr chrgot bne run2 jmp runc ===> 'run mit zeilennummer <=== jsr clearc beq runc2 2072 Bc17 ===> test direkt/run-modus, run eintr. <=== 2073 Be I 7 ZOH 2075 2076 2077 207B 2079 Bc17 Bc!a Bc1c Bc1e BcZO Bc22 20 57 9d do 8B a9 fe B5 0 a9 00 4c 90 ff runmod jsr tstdir bne runm1d lda #$fe sta curlin+1 lda #$00 jmp kstmsg ZOBO Bc25 sprung nach 'ready' textzeiger + xr. textausgabe im prg-mode zeilenl-ausgabe, ready sprung nach 'ready' addrh zeiger letzter basic-befehl addrl zeiger letzter basic-befehl ind. jmp zur fehlerroutine addrl zeiger letzter basic-befehl addrl zeiger auf akt. term addrh zeiger auf akt. term lo-byte vorige zeilennummer (stop} hi-byte vorige zeilennummer (stop} lo-byte akt. zeilennummer hi-byte akt. zeilennummer test direkt/run-modus, run eintr. letztes zeichen erneut nach ac (indirekter sprung} 'run mit Zeilennummer basic-zeiger inititial.. 'clr' basic-routine 'clr' test direktmodus. hi-byt zeile=$ff hi-byte akt. zeilennummer meldungdes operating-syst. ausgeben

610/710 basic-bverbsl hard+soft ass/reass.... seite 004B zeile adr. obj.-code source-code 20B I Bc25 20B2 Bc25 ===> basic-routine "gosub" <=== 20B3 Bc25 20B4 2085 20B6 20B7 20BB 20B9 2090 2091 2092 2093 2094 2095 2096 Bc25 Bc27 Bc2a Bc2c Bc2d Bc2f Bc30 BcJZ Bc33 Bc35 Bc36 Bc3B Bc39 a9 03 20 66 BB a5 B6 48 a5 B5 48 a5 43 4B a5 42 4B a9 Bd 48 20 29 ba gosub runc2 lda So3 jsr getstk lda txtptr+l pha lda txtptr pha lda curlin+ I pha lda curlin pha lda SBd pha jsr chrgot 2097 209B Bc3c Bc3f 20 B4 Be 4c 5a 87 jsr goto jmp newstt 2099 Bc42 2100 Bc42 2101 Bc42 ===> basic-routine "if" <=== 2102 Bc42 2103 Bc42 20 Cl 95 if jsr frmevl 2104 Bc45 24 II bit valtyp 2105 Bc47 2106 8c49 2107 Bc4c 10 03 20 e9 ab 20 29 ba 210B Bc4f c9 89 2109 Bc51 fo 05 2110 Bc53 a9 a7 2111 Bc55 20 32 97 if50 bpl if50 jsr frefac jsr chrgot cmp SB9 beq okgoto lda Sa 7 jsr synchr test stapelplatz addrh zeiger auf akt. term addrl zeiger auf akt. term hi-byte akt. zeilennummer lo-byte akt. Zeilennummer letztes zeichen erneut nach ac (indirekter sprung} basic-routine "goto" neues statement, stoptest auswertung beliebiger ausdruck flag für variablen typ (O=num, l=stringl stringverwaltung, freier string letztes zeichen erneut nach ac (indirekter sprungl "goto" folgt auf erfülltes "if" test:folgt ascii o. token im akt. text, sonst error 2112 Bc5B 2113 Bc5B 2114 Bc5B ===> "goto" folgt auf erfülltes "if" <=== 2115 Bc5B 2116 Bc5B a5 71 okgoto lda facexp fac 1: exponent 2117 Bc5a do 13 bne docond 2 IIB Bc5c 2119 Bc5c 2120 Bc5c ===> testauf "else" nach "if" <=== 212 I Bc5c 2122 Bc5c 20 df Be lkelse jsr data 2123 Bc5f ao oo ldy soo 2124 Bc61 b I B5 lda ltxtptrl,y 2125 Bc63 fo 12 beq rem 2126 Bc65 20 26 ba jsr chrget 2127 Bc6B c9 e I cmp Se I 212B Bc6a do fo bne lkelse 2129 Bc6c 20 26 ba jsr chrget 2130 Bc6f 20 29 ba docond jsr chrgot 2131 Bc72 90 10 2132 8c74 4c ab B7 2133 Bc77 bcc goto jmp xeqcm3 basic-routine "data" addrl zeigerauf akt. term basic-routine "rem nächstes zeichen nach ac lind.jmpl testauf "else" nach "if" nächstes zeichen nach ac lind.jmpl letztes zeichen erneut nach ac (indirekter sprung} basic-routine "goto" basic-befehl ltoken in acl ausführen

610/TIO basic-bverbsl hard+soft ass/re1ss.... seite 0049 zeile adr. obj.-eode souree-eode 2134 BeTT 2135 BeTT ===> basie-routine 'rem <=== 2136 BeTT 213T BeTT 20 fo Be rem jsr remn 2138 BeTa fo 66 beq addon 2139 BeTe 2140 BeTe 2141 BeTe ===> basic-routine go to <=== 2HZ 2143 BeTe BeTe 20 29 ba 2144 Bclf a9 a4 2145 BeB! ZO 32 91 2146 Be84 2147 BcB4 go jsr ehrgot lda t$a4 jsr synchr 2148 8c84 ===> basic-routine goto <=== 2149 BeB4 2150 Be84 20 4e Bd goto jsr linget 2151 BeBT 20 fo Be gotoo jsr remn 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 Be Ba BcBb BcBd BcBf 8c91 8c93 8c95 Bc96 8e97 8c99 38 a5 42 e5 lb a5 43 e5 le bo Ob 98 38 65 85 a6 86 sec lda eurlin sbc linnum lda curlin+l sbc linnum+l bes luk4it tya sec ade txtptr ldx txtptr+l 2162 8e9b 90 0 7 bee lukall 2163 Be9d es inx 2164 8c9e bo 04 bes lukall 2165 Bcao 2166 Beau Beao ===> zeilen I > akt. suchen/abarb. <=== 2167 2168 Bcao 2169 Bcao a5 2d 21TO 8ca2 a6 2e 2171 8ca4 2112 8ea4 luk4it lda txttab ldx txttab+ I 21T3 8ca4 ===> zeilen I < akt. suchen/abarb. <=== 2174 8ca4 21T5 8ea4 20 23 87 lukall jsr fndlnc 2176 8ca7 90 24 bec userr ZIT1 8ca9 a5 6d 2178 2179 2180 8cab Bcad Bcaf 2181 8eb1 2182 8cb3 2183 8cb5 2184 8cb8 2185 8eb8 e9 01 85 85 a5 6e e9 oo 85 86 4c 11 Be lda lowtr sbc 1$01 sta txtptr lda lowtr+l sbe 1$00 sta txtptr+l jmp runmod basie-zeilenende suchen, offset yr textzeiger + yr letztes zeiehen erneut nach ac (indirekter sprungl test:folgt ascii o. token im akt. text, sonst error zeilennummer lesen, in adressformat umwandeln basie-zeilenende suchen, offset yr lo-byte akt. zeilennummer lo-byte akt. zeilennummer hi-byte akt. Zeilennummer hi-byte akt. zeilennummer zeilen > akt. suchen/abarb. addrl zeiger auf akt. term addrh zeiger auf akt. term zeilen I < akt. suchenlabarb. zeilen I < akt. suchen/abarb. addrl zeiger anfang addrh zeiger anfang basie-text basic-text startadr. der zeile in "lowtr' ausgabe '?undefined statement error ready addrl ursprunganfang lverschiebenl/ temp.facl2 addrl zeiger auf akt. term addrh ursprunganfang (verschieben/ temp. facl2 addrh zeiger auf akt. term test direkt/run-modus, run eintr.

610/710 basic-bverbs1 hard+soft ass/reass.... seite 0050 zeile adr. obj.-code source-code 2186 BebB :zz> basic-routine return' <=== 2187 BebB 2188 2189 2190 2191 ScbB Beba Bebe Bebe do 32 a9 10 85 56 a9 ff return bne addrts lda B$10 sta lstpnt+2 lda l$ff 2192 sceo 85 55 sta lstpnt+ 1 2193 Bec2 20 db s 7 jsr fndfor 2194 2195 2196 Bec5 Bee6 BeeB 91 c9 Bd fo OB txs cmp B$Bd beq retul 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2201 2208 2209 2210 22" 2212 2213 22" 2215 2216 Beea Becc Sced Beed Secd Bccd Sced Secf Scd2 Bed2 Scd2 Bed2 Bed2 Bcd3 Bcd4 Bcd6 Scd7 Scd9 Be da Scdc a2 2c 2c ldx B$2e.byte $2c bank zeiger letzter string addrh zeiger letzter string stapel-suchroutine for-next/goto zeilen- u. programm-zeiger vom stapel, weiter 'data' ===> ausgabe '?undefined statement error ready <=== a2 36 userr ldx 8$36 4e 52 B5 jmp error ind. jmp zur fehlerroutine ===> zeilen- u. programm-zeiger vom stapel, weiter 'data <=== 68 68 85 42 68 S5 43 68 S5 S5 6B 2217 Bcdd 85 86 2218 Bcdf 2219 Bcdf retu1 pla pla sta curlin pla sta curlin+l pla sta txtptr pla sta txtptr+l 2220 Bcdf ===> basic-routine 'data <=== 2221 Bcdf 2222 Scdf 20 ed Be data jsr datan 2223 8ce2 2224 2225 2226 Sce2 2227 Sce2 9S 222S 8ce3 18 2229 8ce4 2230 Sce6 2231 SeeS 2232 8cea 2233 Scec 2234 8ced 2235 Sced 2236 2231 2Z38 2239 2240 2241 8ce2 Bce2 ===> textzeiger + yr <=== Sced Bced Bced Scef BcfO ScfO 65 B5 S5 B5 90 02 e6 B6 60 addon tya clc adc txtptr sta txtptr bcc addrts inc txtptr+l addrts rts lo-byte akt. Zeilennummer hi-byte akt. Zeilennummer addrl zeiger auf akt. term addrh zeiger auf akt. term trennzeichen : zeilenende o suchen, offset yr addrl zeiger auf akt. term addrl zeigerauf akt. term addrh zeiger auf akt. term ===> trennzeichen : zeilenende o suchen, offset yr <=== az Ja 2c datan ldx l$3a. byte $2c

610/710 basic-bverbsl hard+soft ass/reass..... seite 0051 zeile adr. obj.-code source-code 2242 2243 22H 2245 22H 2241 BcfO BcfO BcfO 8cf2 BcH Bcf6 ===> basic-zeilenende suchen, offset yr <=== a2 00 86 Oe ao oo 84 Od 2248 BcfB a5 Od 2249 2250 2251 2252 2253 2254 2255 Bcfa 8cfc Bcfe BdOO 8d02 8d04 8d06 2256 8d08 2257 BdOa 2258 8d0c 2259 8d0d 2260 8d0f 2261 Bdtf 2262 8dl3 2263 8d16 2264 8d16 2265 8dl6 2266 8dl6 a6 Oe 85 Oe 86 Od a5 87 85 01 b I 85 fo Ob c5 Od fo 07 c8 c9 22 do ef fo e5 4c Be ba remn ldx #$00 stx charac ldy #$00 sty endehr exchqt lda endehr ldx charac sta charac stx endehr remer lda txtptr+2 sta i6509 lda I txtptr I, y beq remtxt cmp endehr beq remtxt iny cmp #$22 bne remer beq exchqt remtxt jmp mapusr ===> basic-routine "trap" <=== 2267 8d16 20 4a 9d trap 2268 8d19 20 29 ba 2269 8d1c fo 07 2210 8d1e 20 e5 b4 221 I 8d21 2272 8d24 2213 8d25 22H 8d27 2215 8d2a 2216 8d2b 2211 8d2b Be 96 02 2c a9 ff Bd 97 02 60 trap 1 jsr errdir jsr chrgot beq trap1 jsr getpin sty trapno.byte $2c lda l$ff sta trapno+1 rts 2278 Bd2b ===> basic-routine "on - goto" <=== 2219 8d2b 2280 8d2b 20 d6 b4 ongoto jsr getbyt 2281 8d2e pha 2282 8d2f c9 8d cmp #$8d 2283 8d31 fo 07 beq onglop 2284 8d33 c9 89 cmp #$89 2285 Bd35 fo 03 beq onglop 2286 8d37 4c 4f 97 snerr3 jmp snerr 228 7 8d3a 2288 8d3a 2289 8d3a 2290 8d3c 2291 8d3e 2292 8d3f 2293 8d42 2294 8d42 2295 2296 8d42 8d45 c6 75 do 04 68 4c aa 8 7 20 26 ba 20 4e 8d onglop dec faclo bne onglp1 pla jmp xeqcm2 onglp1 jsr chrget jsr linget puffer für trennzeichen puffer für trennzeichen puffer für trennzeichen puffer für trennzeichen puffer für trennzeichen puffer für trennzeichen bank zeiger auf akt. term 6509 indirection register addrl zeiger auf akt. term puffer für trennzeichen umsch. auf bank # 1 test direkt, ausgabe "?illegal direct error", ready letztes zeichen erneut nach ac (indirekter sprungl dezimal-zahl in klammer nach linnum einlesen addrl zeiger error trap addrh zeiger error trap zahl < 256 aus akt. text nach xr ausgabe "?syntax error", ready fac #1: mantisse nachstes Zeichen nach ac (ind.jmp} zeilennummer lesen, in adressformat umwandeln

610/710 basic-bverbsl hard soft ass/reass.... seite 0052 zeile adr. obj.-code source-code 2297 8d48 c9 2c 2298 8d4a fo ee 2299 8d4c 68 2300 8d4d 60 2301 8dU 2302 8d4e cmp lt$2c beq onglop pla ongrts rts 2303 8d4e ===> zeilennummer lesen, in adressformat umwandeln <=== 2304 8dU 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 8d4e 8d50 8d52 8d54 8d56 8d58 8d5a 8d5c 8d5e 8d60 8d62 8d64 8d65 8d6 7 8d68 8d6a 8d6C 8d6e 8d70 8d72 8d74 8d76 8d78 8d7a 8d7c 8d7e 8d80 8d82 8d85 a2 00 86 lb 86 lc bo f7 e9 2f 85 Oe a5 lc 85 22 c9 19 bo d5 a5 lb Oa 26 22 Oa 26 22 65 lb 85 lb a5 22 65 lc 85 lc 06 lb 26 lc a5 lb 65 Oe 85 lb 90 02 e6 lc 20 26 ba 4c 54 8d linget ldx lt$00 stx linnum stx linnum+l morlin bcs ongrts sbc lt$2f sta charac lda linnum I sta indexl cmp lt$19 bcs snerr3 lda linnum asl a rol indexl asl a rol indexl adc linnum sta linnum lda indexl adc linnum l sta linnum+l asl linnum rol linnum l lda linnum adc charac sta linnum bcc nxtlgc inc linnum l nxtlgc jsr chrget jmp morlin lo-byte akt. Zeilennummer hi-byte akt. zeilennummer puffer für trennzeichen hi-byte akt. Zeilennummer addrl indirekter index ltl lo-byte akt. Zeilennummer addrl indirekter index ltl addrl indirekter index ltl lo-byte akt. Zeilennummer lo-byte akt. Zeilennummer addrl indirekter index II hi-byte akt. zeilennummer hi-byte akt. Zeilennummer lo-byte akt. Zeilennummer hi-byte akt. Zeilennummer lo-byte akt. Zeilennummer puffer für trennzeichen lo-byte akt. zeilennummer 2334 8d88 2335 8d88 2336 8d88 do ad 2337 8d8a 2338 8d8a 23H 2345 2346 ressnr bne snerr3 2339 8d8a ===> basic-routine 'let' <=== 2340 8d8a 8d8a 20 a6 88 let jsr sav73 8d8d a9 b2 lda l$b2 8d8f 20 32 97 jsr synchr 8d92 8d94 8d95 a5 12 48 a5 II 2347 8d97 48 2348 8d98 20 cl 95 2349 Bd9b 68 2350 8d9c 2a 2351 8d9d 20 07 b5 2352 8da0 do le lda intflg pha lda valtyp pha jsr frmevl pla rol a jsr chkval bne copstr hi-byte akt. zeilennummer nächstes zeichen nach ac lind.jmpl test:folgt ascii o. token im akt. text, sonst error flag für integer-variable flag für variablen typ (O=num, l=stringl auswertung beliebiger ausdruck prüft ob richtiger variablentyp

610/710 basie-bverbsl hard+soft ass/reass.... seite 0053 zeile adr. obj.-eode souree-eode 2353 Bda2 2354 Bda3 2355 Bda5 2356 BdaB 2357 Bdab 235B Bdad 2359 Bdaf 2360 8dbl 2361 Bdb3 2362 Bdb5 2363 8db6 2364 8db8 2365 Bdba 2366 Bdbd 2367 Bdbd 236B 8dbd 2369 BdeO 2370 2371 2372 2373 2374 2375 2376 Bde4 2377 Bde4 237B 2379 23BO 23BI 6B 10 IB 20 f2 a I 20 13 9b a5 56 B5 01 ao oo a5 74 91 54 eb a5 75 91 54 4e Be ba 4e 9f a I pla qintgr bpl eopflt jsr round jsr ayint lda lstpnt+2 sta i6509 ldy #$00 lda faemo sta I lstpnt I, y iny lda faelo sta llstpntl,y jmp mapusr eopflt jmp movvf BdeO BdeO Bdel 6B 4e 73 a9 eopstr pla jmp inpeom Bde4 Bde4 8de4 ===> basie-routine 'resume' <=== Bde7 Bdea Bdeb Bded 20 h 9d ae 99 02 eb fo 52 20 29 ba 23B2 8dd0 fo Zd 23B3 Bdd2 90 ld 23B4 Bdd4 e9 BZ 2385 Bdd6 do bo 23B6 BddB 20 ff Bd 23B7 Bddb 20 Be ba 23BB Bdde ao 00 23B9 BdeO bl B5 2390 Bde2 do 07 2391 Bde4 eb 2392 Bde5 20 63 B7 2393 2394 2395 2396 BdeB Bdeb Bdee Bdf1 2397 Bdfl 239B Bdfl 2399 Bdf4 2400 Bdf6 2401 Bdf9 2402 Bdfe 2403 2404 2405 2406 24 0 7 20 e2 Be 20 26 ba 4e df Be 20 e5 b4 B5 1e 20 Oe Be 20 Be ba 4c ao Be Bdff Bdff Bdff a2 01 Be01 bd 9B 02 Be04 95 42 resume jsr errdir gooos ldx errlin+1 inx beq rescnt jsr chrgot beq resswp bcc resnum cmp #$B2 bne ressnr jsr resswp jsr mapusr ldy #$00 lda ltxtptrl,y bne resum2 iny jsr sav42 jsr addon resum2 jsr chrget jmp data resnum jsr getpin sta linnum+1 jsr resend jsr mapusr jmp luk4it resswp ldx #$0 1 resumo lda errlin,x sta curlin,x gk-zahl aus fac in variable fac #I rundung umwandlung real nach integer bank zeiger letzter string 6509 indirection register fac #1: mantisse addrl zeiger letzter string fac #1: mantisse addrl zeiger letzter string umsch. auf bank # 1 gk-zahl aus fac in variable test direkt, ausgabe '?illegal direct error', ready hi-byte Zeilennummer akt. fehler letztes zeichen erneut nach ac tindirekter sprung) umsch. auf bank # 1 addrl zeiger auf akt. term textzeiger + yr nachstes zeichen nach ac lind.jmpl basic-routine 'data' dezimal-zahl in klammer nach linnum einlesen hi-byte akt. zeilennummer umsch. auf bank # I zeilen # > akt. suchen/abarb. lo-byte Zeilennummer akt. fehler lo-byte akt. Zeilennummer

610/710 basic-bverbsl hard+soft ass/reass... seite 0054 zeile adr. ob;j.-code source-code 240B Be06 bd 9a 02 ldl errtxt,x addrl basic-text zeiger bei fehlerbehandlung 2409 Be09 95 B5 s ta txtptr,x addrl zeiger auf akt. term 2410 Be Ob Cl dex 241 I Be Oe 10 f3 bpl resumo 2412 Be Oe 12 H resend ldx IISH 241l BeiO 86 Of stx xcnt dos loop-zähler 2414 BeiZ Be 9B 02 stx errlin lo-byte zeilennummer akt. fehl er 2415 Bel5 Be 99 02 stx errlin+l hi-byte Zeilennummer akt. fehl er 2416 BeiB ae 9d 02 ldx tmptrp hi-byte Zeilennummer "trap, resume 2417 Belb Be 97 02 stx trapno+ 1 addrh zeiger error trap 24 IB Bele 60 rts 2419 Belf 2420 Belf 2421 Be lf a2 52 rescnt ldx 11$52 2422 Bell 4c 52 85 ;jmp error ind. ;jmp zur fehlerroutine 242l Be24 2424 Be24 2425 Be24 ===> basic-routine 'dispose <=== 2426 Be24 2427 Be24 c9 BI dispos cmp 11$81 242B Be26 fo 04 beq dispoo 2429 Be2B c9 Bd cmp II$Bd 2430 Be2a do aa bne gooos 2431 Be2c Bd 9f 02 dispoo sta oldtok temp. speieher "dispose" 2432 Be2f 20 41 9d jsr errdir test direkt, ausgabe '?illegal direct error', ready 243l Bell ba tsx 2434 Bell eb inx 2435 Bel4 eb inx 2436 Bel5 Ba txa 2437 Bel6 ab tay 243B Be37 9B dispo I tya 2439 Be3B aa tax 2440 Be39 co cpy II$H 2441 Be3b fo " 3B beq diserr 2442 Be 3d bd 01 01 lda stack+ I, x 6509 cpu-stack 2443 Be40 c9 BI cmp 1$81 2444 8e42 do 06 bne dispol 2445 BeH Ba txa 2446 Be45 69 12 adc 1$12 2447 BeH 4c 4e Be jmp dispol ZHB BeU 2449 Be4a 2450 BeU Ba dispol txa 2451 Be4b 18 clc 2452 Be4c 69 07 adc 1$07 245l Be4e bo 25 dispol bcs diserr 2454 Be 50 ab tay 2455 Be51 bd 0 I 01 lda stack+ I, x 6509 cpu-stack 2456 Be 54 Cd 9f 02 cmp oldtok temp, speieher 'dispose' 2457 Be 57 do de bne dispo I 2458 Be 59 fo Ol beq dispo5 2459 8e5b ae 9e 02 dispo4 ldx dsptmp temp. speieher "dispose" 2460 8e5e bd 00 01 dispo5 lda stack,x 6509 cpu-stack 2461 8e61 99 00 0 I sta stack,y 6509 cpu-stack 2462 Be64 B8 dey 246l 8e65 ca dex

610/TIO basic-bverbsl hard+soft ass/reass..... seite 0055 zeile adr. obj.-code source-code 2464 Be66 Be 9e 02 stx dsptmp temp. speieher dispose 2465 Be69 ba tsx 2466 Be6a ec 9e 02 cpx dsptmp temp. speieher "dispose 2467 Be6d do ec bne dispo4 246B Be6f 9B tya 2469 Be TO aa tax 2470 Be Tl 9a txs 2471 BeT2 4c 26 ba jmp chrget nächstes zeichen nach ac lind. jmpj 2HZ BeT5 2473 BeT5 2474 Be75 a2 54 diserr ldx 1$54 2475 BeTT 4c 52 B5 jmp error ind. jmp zur fehlerroutine ZH6 Be7a ZHT Be Ta.end ZHB BeTa.lib bverbsz

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0056 zeile adr. obj.-code source-code 2480 Be7a 2481 Be7a ===> basic-routine 'printl' <=== 2482 Be7a 2483 2484 Be7a Be7d 20 80 Be 4c 59 Bf printn jsr cmd jmp iodone 2485 BeBO 2486 BeBO 2487 BeBO ===> basic-routine cmd' <=== 2488 BeBO 2489 2490 2491 BeBO BeB3 BeB5 20 d6 b4 fo 03 20 30 97 cmd jsr getbyt beq cmnd2 jsr chkcom 2492 2493 2494 2495 2496 2497 2498 2499 2500 BeBB BeB9 Be Ba BeBd Be90 Be92 Be93 Be94 Be97 OB 48 Be 58 02 20 86 95 85 Ia 68 28 4c 9d Be cmnd2 php pha stx dolu jsr patchl sta channl pla plp jmp print 250 I Be97 2502 Be97 20 15 b5 strdon jsr strprt 2503 Be9a 20 29 ba newchr jsr chrgot 2504 Be9d 2505 Be9d 2506 Be9d ===> basic-routine print' <=== 2507 2508 2509 2510 2511 2512 2513 Be9d Be9d Be9f Beal Bea3 Bea6 Bea6 fo 29 c9 e6 do 03 4c 26 bo 252B Bebe 30 d7 2529 BecO 20 be a3 2530 Bec3 20 2e b5 2531 Bec6 do d2 2532 BecB 2533 BecB print beq ocrlf cmp l$e6 bne printc jmp using 2514 Bea6 ===> test ob 'tab' spc 2515 Bea6 2516 2517 251B 2519 2520 2521 2522 2523 2524 2525 2526 2527 Bea6 Be ab Beaa Beac Beae Beaf Beb! Beb3 Beb5 Beb7 Beb9 Bebe fo 31 c9 aj fo Je c9 a6 IB fo 39 c9 2c fo 25 c9 Jb fo 53 20 c I 95 24 II printc beq ocrlfx cmp l$a3 beq taber cmp l$a6 clc beq taber cmp #$2c beq comprt cmp #$3b beq notabr jsr frmevl bi t valtyp bmi strdon jsr outfac jsr ospc bne newchr basic-routine cmd' akt. kanal clr, tast. aktivieren zahl < 256 aus akt. text nach xr test 'komma sonst fehler ready vorgabe für ausgabe-adresse system-status schreiben, iec listen speieherstelle für aktiven kanal basic-routine 'print' ausgabe string -$00 (addr. in zeropage) letztes zeichen erneut nach ac (indirekter sprung) ausgabe er l lf) auf akt. kanal tes t ob 'tab spc folgt basic-routine printusing folgt <=== 2534 BecB ===> ausgabe er l lf) auf akt. kanal <=== tabulator ausführen tabulator ausführen 10-tabulierung bei print (,I nächstes zeichen lesen, drucken auswertung beliebiger ausdruck flag für variablen typ (O=num, l=stringl bei bs cursor rechts, sonst space

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0057 zeile adr. obj.-code source-code 2535 8ec8 25J6 8ec8 ll9 Od ocrlf lda Sod 2537 Beca 20 Ja b5 jsr ochr liusgabe 1 zeichen I in ac) 25J8 Becd ad 58 02 ldll dolu vorgabe für ausgabe-<~dresse 25J9 BedO 10 05 bpl crfin 2540 8ed2 a9 Oa ldll soa 2541 8ed4 20 Ja b5 jsr ochr ausgabe 1 zeichen I in ac J 2542 8ed7 49 ff crfin eor Sff 2543 8ed9 60 ocrlfk rts 25H Beda 2545 Beda 2546 Be da ===> 10-tabulierung bei print I' J <=== 2541 Be da 2548 Be da JB comprt sec 2549 8edb 20 fo ff jsr kplot K,y-pos. des cursor lesen/schreiben 2550 Bede 98 tya 2551 Bedf JB sec 2552 BeeO e9 Oa morco1 sbc t$oa 255J Bee2 bo fc bcs morco1 2554 Bee4 49 ff eor l$ff 2555 Bee6 69 01 adc Sol 2556 Bee8 do 18 bne aspac funktion 'tab' 2557 8eea 2558 8eea 2559 8eea ===> tabulator ausführen <=== 2560 Beea 2561 Beea 08 taber php 2562 Beeb JB sec 256J 8eec 20 fo ff jsr kplot K,y-pos. des cursor lesen/schreiben 2564 Beef Sc 55 02 sty trmpos cursor spalte auf bildschirm 2565 Bef2 20 dj b4 jsr gtbytc charget, I byte-zahl in Kr 2566 8ef5 c9 29 cmp 1$29 2567 8ef7 do 19 bne snerr2 2568 8ef9 28 plp 2569 8efa 90 07 bcc Kspac funktion space 2570 Befc Ba txa 2571 8efd ed 55 02 sbc trmpos cursor spalte auf bildschirm 2572 BfOO 90 Oa bcc notabr nächstes zeichen lesen, drucken 257J 8f02 25 74 8f02 2575 8f02 ===> funktion tab <=== 2576 8f02 2577 8f02 aa aspac tax 2578 BfOJ 2579 BfOJ 2580 Bf03 ===> funktion space <=== 2581 8f03 2582 BfOJ e8 xspac inx 2583 8f04 ca xspac2 dex 2584 8f05 fo 05 beq notabr nächstes zeichen lesen, drucken 2585 8f07 20 2e b5 jsr ospc bei bs cursor rechts, sonst space 2586 BfOa do f8 bne xspac2 2587 BfOc 2588 BfOc 2589 8f0c ===> nächstes zeichen lesen, drucken <=== 2590 BfOc 2591 8f0c 20 26 ba notabr jsr chrget nächstes zeichen nach ac lind.jmpi 2592 8f0f 4c a6 Be jmp printc test ob tab spc folgt

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0058 zeile adr. obj.-code source-code 2593 8fl2 2594 8fl2 2595 8fl2 2596 8fl5 2597 8fl5 4C H 97 snerr2 jmp snerr 2598 8fl5 ===> basic-routine "get" <=== 2599 8fl5 2600 8fl5 20 4a 9d get jsr errdir 2601 8fl8 20 29 ba 2602 2603 2604 2605 2606 2607 2608 2609 2610 26 II 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 8flb 8fld 8flf 8f22 8f25 8f28 8f2a 8f2c Bf2e 8f30 8f31 Bf33 8f34 8f36 8f38 8f3a 8f3c 8f3d 8f3f 8f41 8H3 8H6 8H8 2625 BHa 60 2626 8Hb 262 7 8f4b c9 23 do Ob 20 d3 b4 20 30 97 20 Be 95 85 Ia a9 0 I a4 89 a6 88 eb do 01 cb 86 22 84 23 85 24 ao oo 98 9 I 22 a4 23 a9 40 20 f3 Bf a6 Ia do II jsr chrgot cmp #$23 bne getoio jsr gtbytc jsr chkcom jsr patch2 sta channl getoio lda #$01 ldy buffpt I ldx buffpt inx bne get020 iny get020 stx indexl sty indexl+l sta indexl+2 ldy #$00 tya sta I index II, y ldy indexl+l lda #$40 jsr inpcol ldx channl bne iorele rts 2628 8f4b ===> basic-routine "input#" <=== 2629 8Hb 2630 8Hb 2631 8He 2632 8f51 2633 8f54 2634 8f56 2635 8f59 2636 8f59 20 d6 b4 20 30 9 7 20 Be 95 85 Ia 20 75 Bf inputn jsr getbyt jsr chkcom jsr patch2 sta channl jsr notqti 2637 8f59 ===> akt. kanal clr, tast. aktivieren <=== 2638 8f59 2639 8f59 a5 Ia 2640 8f5b 2641 8f5b iodone lda channl 2642 8f5b ===> in ac kanal clr, tast. aktivieren <=== 2643 8f5b 26H 8f5b 2645 Bf5e 2646 8f60 26H 8f62 2648 8f65 20 cc ff a2 00 86 Ia Be 58 02 60 iorele jsr kclrch ldx #$00 stx channl stx dolu rts ausgabe '?syntax error', ready test direkt, ausgabe '?illegal direct error', ready letztes zeichen erneut nach ac (indirekter sprung) charget, 1 byte-zahl in xr test 'komma sonst fehler ready system-status schreiben, iec-talk speieherstelle für aktiven lcanal addrh zeiger auf eingabe-puffer addrl zeiger auf eingabe-puffer addrl indirekter index #I addrh indirekter index #I bank indirekter index #I addrl indirekter index #I addrh indirekter index #I speieherstelle für aktiven kanal in ac kanal clr, tast. aktivieren zahl < 256 aus akt. text nach xr test 'komma sonst fehler ready system-status schreiben, iec-talk speieherstelle für aktiven kanal speieherstelle für aktiven kanal ein-lausgabeleanal schließen speieherstelle für aktiven kanal vorgabe für ausgabe-adresse

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0059 zeile adr. obj.-code source-code 2649 Bf66 2650 Bf66 2651 Bf66 ===> basic-routine input <=== 2652 Bf66 2653 Bf66 c9 22 input cmp 1$22 2654 8f68 do Ob bne notqti 2655 Bf6a 20 e7 96 jsr strtxt... string in erfassen 2656 8f6d a9 3b lda l$3b 2657 8f6f 20 32 97 jsr synchr test:folgt ascii o. token im akt. text, sonst error 2658 8f72 20 15 b5 jsr strprt ausgabe string -$00 (addr. in zeropagel 2659 8f75 20 4a 9d notqti jsr errdir test direkt, ausgabe "?illegal direct error ready 2660 8f78 20 ab Bf getagn jsr qinlin druck 0? 0. eingabeschleife 2661 Bf7b a5 Ia lda channl speieherstelle für aktiven kanal 2662 Bf7d fo Od beq bufful 2663 8f7f 20 dd bb jsr readst system-status in ac lesen 2664 8f82 29 03 and 1$03 2665 BfB4 fo 06 beq bufful 2666 8f86 20 59 Bf jsr iodone akt. kanal clr, tast. aktivieren 2667 BfB9 4c df Be jmp data basic-routine "data 266B Bf8c 2669 BfBc 2670 BfBc ao 00 bufful ldy 1$00 26 71 BfBe bl 22 lda I index II, y addrl indirekter index II 2672 Bf90 fo 06 beq buffu2 2673 8f92 20 Je 9e buffu I jsr sav 75 2674 Bf95 4c fl Bf jmp inpcon 2675 Bf98 2676 2677 Bf98 8f9B a5 Ia buffu2 lda channl speieherstelle für aktiven kanal 26 78 8f9a do 03 bne buffu3 2679 Bf9c 4c df Be jmp data basic-routine "data 26BO Bf9f 2681 8f9f 2682 8f9f 20 dd bb buffu3 jsr readst system-status in ac lesen 2683 Bfa2 29 40 and 1$40 2684 8fa4 fo d2 beq getagn 2685 8fa6 do ea bne buffu I 26B6 8fa8 2687 BfaB 26BB 8fa8 ===> druck.?. eingabeschleife <=== 2689 8fa8 2690 Bfa8 a5 Ia qinlin lda channl speieherstelle für aktiven kanal bne ginlin 2692 Bfac 20 3B b5 jsr outqst ausgabe.?. 2693 Bfaf 20 2e b5 jsr ospc bei bs cursor rechts, sonst space 2694 Bfb2 4c e3 86 ginlin jmp inlin eingabe einer zeile 2691 8faa do 06 2695 8fb5 2696 8fb5 2697 Bfb5 ===> bearbeitung read' <=== 2699 Bfb5 20 ed Be datlop jsr datan trennzeichen : zeilenende. 0. suchen, offset yr 2698 8fb5 2700 BfbB cb iny 2 70 I Bfb9 aa tax 2702 8fba do le bne nowlin

610/710 basie-bverbs2 hard+soft ass/reass.... seite 0060 zeile adr. obj.-eode souree-eode 2703 Bfbe a5 B7 2704 Bfbe B5 01 2705 BfeO bl B5 2706 Bfe2 do Oa 2 707 Bfe4 eb 270B Bfe5 bl B5 2709 Bfe7 do 06 2710 Bfe9 az Ze 27 II Bfeb 4e 52 B5 2712 Bfee 2713 Bfee 2 7" Bfee 2715 Bfef 2716 BfdO 2717 Bfd2 271B Bfd4 2719 Bfd5 2720 Bfd7 2721 BfdB 2722 Bfda 2723 Bfdd 2724 BfeO 2725 8fe3 2726 Bfe4 2 72 7 Bfe6 272B 8fe8 2729 Bfea 2730 Bfea eb eb b I B5 B5 49 eb b I B5 eb B5 4a 20 Be ba 20 e2 Be 20 29 ba aa eo 83 do ed fo H dtlpo dtlpl lda txtptr+2 sta i6509 lda ( txtptr I, y bne dtlpo iny lda (txtptrl,y bne dtlpl ldx #$2e jmp error iny iny lda (txtptrl,y sta datlin iny lda ( txtptr I, y iny sta datlin+l nowlin jsr mapusr jsr addon jsr ehrgot tax epx #$B3 bne datlop beq datbkl 2731 Bfea ===> basie-routine 'read' <=== 2732 8fea 2733 2 734 2735 2736 Bfea 8fee 8fee BffO a6 4b a4 4e a9 98 2e read ldx datptr ldy datptr+l lda #$98.byte $2e 2737 273B 2739 2740 2741 2742 270 27H 2745 Bffl 8ff3 8ff5 8ff7 8ff9 Bffe 8ffe 9000 9002 a9 00 85 15 86 4d 84 4e 20 a6 88 a5 85 a4 86 85 57 84 58 inpcon lda #$00 inpcol sta inpflg stx inpptr sty inpptr l inloop jsr sav73 lda txtptr ldy txtptr+l sta opptr sty opptr+1 2746 9004 a6 'd ldx inpptr 2747 9006 a4 'e ldy inpptr+l 2748 9008 86 85 stx txtptr 2749 2750 900a 900e 8' 86 20 29 ba sty txtptr l jsr chrgot 2 751 2752 2753 2754 900f 90 II 9013 9015 do 28 24 15 50 13 20 eb bb 2755 9018 20 3c 9e 2756 901b 86 22 2757 901d 84 23 bne datbk1 bit inpflg bvc qdata jsr getin jsr sav75 stx indexl sty indext+1 bank zeiger auf akt. term 6509 indirection register addrl zeigerauf akt. term addrl zeiger auf akt. term ind. jmp zur fehlerroutine addrl zeiger auf akt. term addrl data-zeilennummer addrl zeiger auf akt. term addrh data-zeilennummer umsch. auf bank # 1 textzeiger + yr letztes zeichen erneut nach ac (indirekter sprungl bearbeitung 'read' addrl ze~ger auf data nach 'read' addrh zeigerauf data nach 'read' flag für eingabe (input,get,readl addrl input-zeilennummer addrh input-zeilennummer addrl zeiger auf akt. term addrh zeiger auf akt. term addrl zeiger akt. operator-routine addrh ze~ger akt. operator-routine addrl input-zeilennummer addrh input-zeilennummer addrl zeiger auf akt. term addrh zeiger auf akt. term letztes zeichen erneut nach ac (indirekter sprungl flag für eingabe (input,get,readl eingabe 1 char vom akt. kanal (queue-vektorl addrl indirekter index #1 addrh indirekter index #I

610/710 basic-bverbs2 hard soft ass/reass..... Seite 0061 zeile adr. obj. -code source-code 2751 901f ao 01 ldy #$01 2159 9021 91 22 sta I index I}, y addrl indirekter index II 2760 9023 a4 23 ldy index lol addrh indirekter indek #I 2761 9025 4c 35 90 jmp datbk 2762 9028 2163 9028 2764 9028 30 8b qdata bmi datlop bearbeitung read' 2165 902a a5 Ia lda channl speieherstelle für aktiven kanal 2766 902c do 03 bne getnth 2161 902e 20 38 b5 jsr outqst ausgabe 0?. 2768 9031 20 a8 8f getnth jsr qinlin druck? I eingabeschleife 2169 9034 aa tax 2770 9035 86 85 datbk StK txtptr addrl zeiger auf akt. term 2111 9037 84 86 sty txtptr l addrh zeiger auf akt. term 2772 9039 20 26 ba datbk I jsr chrget nächstes zeichen nach ac lind.jmpl 2173 903c 24 II bit valtyp flag für variablen typ IO=num, l=stringl 2114 903e 10 37 bpl numins 2775 9040 24 15 bit inpflg flag für eingabe linput,get,read} 2116 9042 50 09 bvc setaut 2777 90H e8 inx 2118 9045 86 85 stx txtptr addrl zeiger auf akt. term 2719 9041 a9 00 lda #$00 2180 9049 85 Oe sta charac puffer für trennzeichen 2781 904b fo Oe beq resetc 2182 904d 85 Oe setaut sta charac puffer für trennzeichen 2783 90H c9 22 cmp #$22 2784 9051 fo 07 beq nowget 2785 9053 a9 3a lda #$3a 2786 9055 85 Oe sta charac puffer für trennzeichen 2787 9057 a9 2c lda #$2c 2788 9059 18 resetc clc 2789 90511 85 Od nowget sta endehr puffer für trennzeichen 2790 905c 20 6b 90 jsr sav30 bank akt. text nach xr. wenn carry=l textzeiger increment 2791 905f 20 27 a8 jsr strlt2 2192 9062 20 f3 ab jsr st2txt 2193 9065 20 73 a9 jsr inpcom 2794 9068 4c 7f 90 jmp strdn2 2795 906b 2796 906b 2797 906b ===> bank akt. text nach xr, wenn carry=l textzeiger increment <=== 2198 906b 2799 906b a5 85 sav30 lda txtptr addrl zeiger auf akt. term 2800 906d a4 86 ldy txtptr l addrh zeiger auf akt. term 2801 906f 69 00 #$00 adc 2802 9011 90 01 bcc nowgel 2803 9073 cb iny 2804 9074 a6 81 nowgel ldx txtptr 2 bank zeiger auf akt. term 2805 9076 60 rts 2806 9077 2807 9017 2808 9077 20 db a2 numins jsr fin umw. zahleostring in gk-zahl 2809 907a a5 12 lda intflg flag für integer-variable 2810 907c 20 a3 Bd jsr qintgr 2811 907f 20 29 ba strdn2 jsr chrgot letztes zeichen erneut nach ac!indirekter sprung} 2812 9082 fo 04 beq trmok

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0062 zeile adr. obj.-code source-code 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 9084 9086 9088 908a 908c 908e 9090 9092 9094 9096 9098 c9 2c do lb a5 85 a4 86 85 4d 84 h a5 57 a4 58 85 85 84 86 20 29 ba 2824 909b fo 2e 2825 909d 20 30 97 2826 90a0 4c f9 Bf 2827 90a3 2828 90a3 2829 90a3 2830 90a5 2831 90a7 2832 90a9 2833 90ab 2834 90ad 2835 90af 2836 90bl 283 7 90b4 2838 90b4 a5 15 fo Od 10 OB a5 49 a4 h 85 42 84 43 4c H 97 trmok cmp ft$2c bne trmnok lda txtptr ldy txtptr- I sta inpptr sty inpptr+l lda opptr ldy opptr+l sta txtptr sty txtptr+l jsr chrgot beq endvar jsr chkcom jmp inloop trmnok lda inpflg beq trmnol bpl snerr6 lda datlin ldy datlin+l sta curlin sty curlin+l snerr6 jmp snerr 2839 90b4 ===> behandlung eingabefehler <=== 2840 90b4 2841 90b4 2842 90b6 2843 90b8 2BH 90ba 2845 90bd 2846 90bd 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 90bd 90bd 90bd 90bf 90c2 90c4 90c6 90c8 90ca 90cb 90cb 90cb 90cd 90cf 90dl 90d3 90d5 90d7 90d8 2866 90d8 286 7 90d8 2868 90da a5 Ia fo 05 a2 H 4c 52 85 trmnol lda channl beq doagin ldx I$H jmp error addrl zeiger auf akt. term addrh zeiger auf akt. term addrl input-zeilennummer addrh input-zeilennummer addrl zeiger akt. operator-routine addrh zeiger akt. operator-routine addrl zeiger auf akt. term addrh zeiger auf akt. term letztes zeichen erneut nach ac (indirekter sprung) test "komma sonst fehler +ready flag für eingabe (input,get,read) behandlung eingabefehler addrl data-zeilennummer addrh data-zeilennummer lo-byte akt. Zeilennummer hi-byte akt. zeilennummer ausgabe "?syntax error", ready speieherstelle für aktiven kanal ausgabe "?redo from start", zeiger "oldtxt" nach "txtptr' ind. jmp zur fehlerroutine ===> ausgabe "?redo from start, zeiger "oldtxt" nach "txtptr" <=== a2 20 20 cj aj a5 46 a4 47 85 85 H 86 60 a5 4d a4 4e a6 15 10 05 85 4b H 4c 60 ao 00 b I 4d doagin ldx tt$20 jsr msg lda oldtxt ldy oldtxt+l sta txtptr sty txtptr+l rts endvar lda inpptr ldy inpptr+l ldx inpflg bpl varyo sta datptr sty datptr+l inprts rts varyo ldy #$00 lda I inpptr I, y textzeiger + xr, textausgabe addrl zeiger letzter basic-befehl addrh zeiger letzter basic-befehl addrl zeiger auf akt. term addrh zeiger auf akt. term addrl input-zeilennummer addrh input-zeilennummer flag für eingabe (input,get,read) addrl zeiger auf data nach 'read' addrh zeigerauf data nach 'read' addrl input-zeilennummer

610/710 basic-bverbs2 hard+soft ass/reass... seite 0063 zeile adr. obj.-code source-code 2869 90dc fo f9 beq inprts 2870 90de a5 Ia lda channl speieherstelle für aktiven kanal 2871 90e0 do f5 bne inprts 2872 90e2 a2 le ldx l$1e 2873 90e4 4c c3 a3 jmp msg textzeiger + xr, textausgabe 2814 90e7 2875 90e7 2876 90e7 ===> basic-routine sys <=== 2877 90e7 2878 90e7 20 es b4 csys jsr getpin dezimal-zahl in klammer nach linnum einlesen 2879 90ea a5 01 lda i6s09 6509 indirection register 2880 90ec 48 pha 2881 90ed ad 57 02 lda dfbank vorgabe für bank-nummer 2882 90f0 c9 Of cmp l$0f 2883 90f2 fo Ob beq fligm 2884 90f4 a6 lb ldx linnum lo-byte akt. zeilennummer 2885 90f6 a4 lc ldy linnum+l hi-byte akt. zeilennummer 2886 90f8 20 6c ff jsr knwsys transfer-of-execution jumper 2887 90fb 2888 90fb 2889 90fb ===> bankl vor sys nach i6509 <=== 2890 90fb 2891 90fb 68 csysrz pla 2892 90fc 85 01 sta i6509 6509 indirection register 2893 90fe 60 rts 2894 90ff 2895 90ff 2896 90ff a9 90 fligm lda 1$90 2897 9101 48 pha 2898 9102 a9 fa lda 1$fa 2899 9104 48 pha 2900 9105 6c lb 00 jmp llinnuml lo-byte akt. zeilennummer 290, 9108 2902 9108 2903 9108 60 rts 2904 9109 2905 9109 2906 9109 20 30 97 dim3 jsr chkcom test "komma sonst fehl er + ready 2907 910c 2908 910c 2909 910c ===> basic-routine "dim <=== 2910 910c 2911 910c aa dim tax 2912 910d 20 3, 99 jsr ptrgtl 2913 9110 20 29 ba jsr chrgot letztes zeichen erneut nach ac (indirekter sprungl 2914 9113 do f4 bne dim3 2915 9115 60 rts 2916 9116 2917 2918 9116 9116 ===> basic-routine "def <=== 2919 9116 2920 9116 20 Sc 9d defn jsr getfnm "fn variable suchen I anlegen 2921 9119 20 4a 9d jsr errdir test direkt, ausgabe '?illegal direct error ready 2922 9 11c 20 2d 97 jsr chkopn test. I., sonst fehler + ready 2923 911f a9 80 lda 1$80

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0064 zeile adr. obj.-code source-code 2924 2925 2926 2927 292B 2929 9121 9123 9126 9129 912c 912e 2930 9131 2931 9133 2932 9134 2933 9136 2934 9137 2935 9139 2936 9131 2931 913c 293B 913d 2939 913f 2940 9140 2941 9143 2942 9146 B5 14 20 2c 99 20 04 b5 zo 2a 97 a9 b2 20 32 97 a5 53 4B a5 52 48 a5 51 48 a5 B6 48 a5 B5 48 20 df Be 4c eb 9d sh subflg jsr ptrget jsr chknum jsr chkcls lda l$b2 jsr synchr lda varpnt+2 pha lda varpnt+l pha lda varpnt pha lda txtptr+l pha lda txtptr pha jsr data jmp deffin 2943 9146 2944 9146 ===> basic-routine 'poke' <=== 2945 9146 2946 9146 20 ca b4 poke jsr getnum 2941 2948 9149 Ba 914a 20 75 91 txa jsr sav32 2949 2950 2951 914d 914f 9151 91 lb B6 01 60 sta (linnuml,y stx i6509 rts 2952 9152 2953 9152 2954 9152 ===> basic-routine 'wait' <=== 2955 9152 2956 9152 20 Cl b4 fnwait jsr getnum 2957 295B 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2910 Z971 9155 Be 55 02 915B a2 00 915a 20 29 ba 915d fo 03 915f 20 cd b4 9162 Be 56 02 9165 20 75 91 9168 b1 1b 916a 4d 56 02 916d 2d 55 02 9170 fo f6 9172 B6 01 9174 60 9175 9175 stx trmpos ldk 1$00 jsr chrgot beq stordo jsr combyt stordo stx eormsk jsr sav32 waiter lda llinnuml,y eor eormsk and trmpos beq waiter stx i6509 rts flag fur indizierte variable variable suchen/anlegen, deren name folgt prufen, ob numerische variable tast' I', sonst fehler +ready test:folgt ascii o. token im akt. taxt, sonst error bank zeiger auf variable im ram addrh zeiger auf variable im ram addrl zeiger auf variable im ram addrh zeiger auf akt. term addrl zeiger auf akt. term basic-routine 'data' funktionen-zeiger vom stack holen 2 byte-zahl in 'linnum', kommatest, byte-zahl in xr i6509 in xr, vorgabe-bank I in i6509, yr=o lo-byte akt. Zeilennummer 6509 indirection register 2 byte-zahl in 'linnum', kommatest, I byte-zahl in xr cursor spalte auf bildschirm letztes zeichen erneut nach ac tindirekter sprungl kommatest. holt lbyte in xr bitmaske fur 'wait' i6509 in xr, vorgabe-bank # in i6509, yr=o lo-byte akt. Zeilennummer bitmaskefür 'wait' cursor spalte auf bildschirm 6509 indirection register 2972 9175 ===> i6509 in xr, vorgabe-bank I in i6509, yr=o <=== 2913 9175 2974 9175 a6 01 sav32 ldx i6509 6509 indirection register

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0065 zeile adr. obj.-code source-code 2975 9177 2976 917a 2977 917c 2918 911e 2979 9 17f 2980 9 17f ac 57 02 84 01 ao oo 60 ldy dfbank sty i6509 ldy 11$00 rts 2981 917f ===> basic-routine "key <=== 2982 9 I 7f 29B3 917f do 04 29B4 9181 ao oo 2985 91B3 fo 26 Z9B6 91B5 20 d6 b4 2987 91BB Ba 2988 9189 do 03 2989 91Bb 4c a7 9b 2990 91Be 2991 91Be 2992 918e 2993 9190 2994 9192 c9 15 bo f9 48 2995 9193 20 30 97 2996 9196 20 b6 91 2997 9199 B5 64 299B 2999 3000 3001 3002 3003 919b a5 22 919d a6 23 919f a4 24 91al B5 65 91a3 86 66 91a5 84 67 3004 91a7 6B 3005 91aB 3006 91a9 3007 91ab 300B 91ae 3009 91b0 3010 91b2 3011 91b5 3012 91b5 3013 91b5 60 ab a9 64 20 75 ff 90 05 a2 34 6c 80 02 fkey bne key20 ldy 11$00 beq keygo key20 jsr getbyt txa bne key40 fcerr3 jmp fcerr key40 keygo cmp 11$15 bcs fcerr3 pha jsr chkcom jsr savl3 sta highds lda indexl ldx indexl+l ldy indexl+2 sta highds+l stx highds+2 sty hightr pla tay lda 11$64 jsr kfunky bcc bakrts ldx 11$34 jmp (ierrorl bakrts rts 3014 91b6 3015 91b6 3016 91b6 20 cl 95 savl3 jsr frmevl 3011 91b9 4c e6 ab jmp frestr 301B 91bc 3019 91bc 3020 91bc ===> basic-routine verify <=== 3021 3022 3023 3024 3025 3026 3021 91bc 91bc 91be 91bf 91cl 91c4 91c6 a9 4e 48 a9 80 20 00 92 fo 20 6B cverf lda ll$4e pha lda 11$80 jsr ldver beq cvfl pla vorgabe für bank-nummer 6509 indirection register zahl < 256 aus akt. text nach xr ausgabe "?illegal quantity error ready test "komma sonst fehler +ready addrl zielende (verschieben)/ temp. faclll addrl indirekter index 111 addrh indirekter index 111 bank indirekter index 111 addrh zielende (verschieben/ temp. faclll bank zielende!verschieben/ temp. faclll addrl ursprungende!verschieben)/ temp. faclll vector für funktionstasten addrl fehler routine auswertung beliebiger ausdruck alten string entfernen

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0066 zeile adr. obj.-code source-code 3028 91c7 60 rts 3029 91c8 3030 91c8 3031 91c8 ===> basic-routine 'load' <=== 3032 91c8 3033 91c8 3034 91ca 3035 91cd 3036 91cf 3037 91d2 3038 91d5 3039 91d8 3040 91d8 3041 91d8 3042 91db 3043 91dd 30H 91df 3045 91e I 3046 91e3 3041 91e5 3048 91e6 3049 91e9 3050 91eb 3051 91ed 3052 91ee 3053 91f0 3054 91fl 3055 91f2 3056 91f3 3057 91f6 3058 91f9 3059 91f9 3060 3061 3062 3063 3064 3065 3066 306 7 3068 91f9 91fb 91fd 91fe 9200 9201 9204 920 7 9209 3069 920a 3070 920c 3071 920e 3072 9210 3073 9213 3074 9215 3075 9218 3076 921b 3077 921b a9 00 20 00 92 fo 09 20 a4 86 20 bb b4 4c 72 Ba ad 5b 02 c9 01 do Ia 86 2f 84 30 a9 4c 48 20 dd bb 29 10 do 04 68 a9 18 48 68 aa 20 c3 a3 4c 9b 86 a6 56 do f6 48 fo 04 48 20 b2 b9 20 e I ff fo fb 68 09 01 a6 2d a4 2e 20 06 bc bo 29 8d 5b 02 4c 57 9d cload lda 1$00 jsr ldver loadck beq cl fl jsr lnkprg jsr stxtpt jmp fload elf! cvfl cld2 cld3 lda ldaadr cmp 1$0 I bne cld4 stx txtend sty txtend+l lda #$4c pha jsr readst and 1$10 bne cld2 pla lda 1$18 pha pla tax jsr msg jmp fini cld4 ldx lstpnt+2 bne cld3 loadnp pha beq lvrl ldver pha lvrl jsr plsv jsr kstop beq lvrl pla ora #$0 I ldx txttab ldy txttab+l jsr load bcs ldsver sta ldaadr jmp tstdir 3078 921b ===> basic-routine 'save' <=== 3079 921b 3080 921b 20 b2 b9 csave jsr plsv 3081 3082 3083 3084 921e 9220 9222 9224 a6 2d a4 Ze a9 0 I 86 64 savenp ldx txttab ldy txttab+l lda #$0 I stx highds Linkadressen berechnen programmzeiger auf start reset 'read'-,stack-,befehl-zeiger addrl modifiable adresse addrl zeiger ende addrh zeiger ende basic-text basic-text system-status in ac lesen textzeiger + xr, textausgabe linkadr. berechnen, ready bank zeiger letzter string test stop-taste addrl zeiger anfang basic-text addrh zeiger anfang basic-text einlesen vom logischen file addrl modifiable adresse test direktmodus, hi-byt zeile=$ff addrl zeiger anfang addrh zeiger anfang basic-text basic-text addrl zielende lverschiebenl/ temp. fac#l

610/110 basic-bverbsz hard+soft ass/reass.... seite 0061 zeile adr. obj.-code source-code 3085 9226 84 65 sty highds+1 addrh zielende (verschieben/ temp. faclll 30B6 922B B5 66 sta highds+z bank zielende!verschieben/ temp. flclll 3087 922a a6 Zf ld>< t><tend addrl zeiger ende basic-te><t 3088 922c a4 30 ldy t><tend+l addrh zeiger ende basic-te><t 3089 92Ze 3090 922e 3091 922e ===> teil der save-routine <=== 3092 92Ze 3093 922e B6 67 savenb st>< hightr addrl ursprungende (verschieben!/ temp. faclll 30!H 9230 84 68 sty hightr+l addrh ursprungende (verschieben}/ temp. faclll 3095 9232 B5 69 s ta hightr+2 bank ursprungende (verschieben! 3096 9234 a2 64 ld>< 11$64 3097 9236 ao 67 ldy 11$6 7 309B 923B 20 oc bc jsr save abspeichern auf logisches file 3099 923b bo 01 bcs ldsver 3100 923d 60 rts 3101 923e 3102 923e 3103 923e Oa ldsver asl a 3104 923f aa ta>< 3105 9240 4c 52 85 jmp error ind. jmp zur fehlerroutine 3106 9243 3107 9243 3108 9243 ===> basic-routine open <=== 3109 9243 3110 9243 az 00 copen ldk 11$00 3111 9245 86 Bb stx parsts das analyse-byte 1 3112 9241 Be 10 02 st>< dosfll das Filename 1 länge 3113 924a Be 21 02 stx dossa das sekundär-adresse 3114 924d eb inx 3115 924e Be zo 02 stx dosfa das primär-adresse 3116 9251 20 04 ba jsr plsv3z 3111 9254 20 d6 b4 jsr getbyt zahl < 256 aus akt. text nach xr 311B 9257 Be lf 02 st>< dosla das logische adresse 3119 9Z5a 20 87 92 jsr cops 3120 925d Be 20 02 stx dosfa das primiir-adresse 3121 9260 ao 00 ldy 11$00 3122 9262 eo 03 cpx 11$03 3123 9264 90 01 bcc copl 3124 9266 BB dey 3125 9261 Be 21 02 copl sty dossa das sekundär-adresse 3126 926a 20 87 92 jsr cops 3127 926d Be 21 02 st>< dossa das sekundär-adresse 3128 9210 20 29 ba jsr chrgot letztes zeichen erneut nach ac (indirekter sprung} 3129 9213 fo 06 beq COP I< 3130 9215 20 01 ba jsr plsv30 3131 9218 20 9c b9 jsr sav17 3132 927b 20 d6 b9 cop>< jsr plsvi< 3133 927e 20 cc ff globtt jsr kclrch ein-/ausgabekanal schließen 3134 9281 20 el bb jsr open log. file offnen/befehl ausgeben 3135 9ZB4 4c 50 93 Jmp dcato 3136 9287 3131 92B 7

610/710 basic-bverbs2 hard+soft ass/reass.... seite 0068 zeile adr. obj.-code source-code 3138 9287 20 29 ba cops jsr chrgot letztes zeichen erneut nach ac (indirekter sprungl 3139 928a do 05 bne copg 3140 928c 68 pla 3141 928d 68 pla 3142 928e 'c 7b 92 jmp copk 3143 9291 31H 9291 31'5 9291 20 01 ba copg jsr plsv30 31H 929, 'c d6 b' jmp getbyt zahl < 256 aus akt. tekt nach Kr 31H 9297 3148 9297 31H 9297 ===> basic-routine close <=== 3150 9297 3151 9297 20 0' ba cclos jsr plsv32 3152 929a 20 d6 b' jsr getbyt zahl < 256 aus akt. tekt nach Kr 3153 929d Ba tka 31H 929e 'c 12 bc jmp close carry= I, log. file schliessen 3155 92al 3156 92a 1.end 3157 92a I.lib bverbs3

610/110 basic-bverbs3 hard+soft ass/reass.... seite 0069 zeile adr. obj.-code source-code 3159 92al 3160 92a I 3161 92a I 3162 92a I 3163 92a4 3164 92a6 3165 92a8 ===> disc-basic-rout. 'catalog-dir. <=== 20 41 b5 dcat a5 Bb 29 e6 fo 03 3166 92aa 4c 4f 97 3167 92ad 3168 92ad 3169 3110 3171 3112 3173 3174 3175 31 76 3177 31 78 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 92ad 92af 92bl 92b3 92b5 92b1 92b8 92ba 92bb 92bc 92bd 92be 92cl 92c3 92c5 92c1 92ca 92cc 92ce 92d0 92d3 92d6 92d8 92db 92dd 92eO 92e2 92e5 92e7 92e9 92ea 92ec 92ef 92f1 92f3 92f6 92f8 92fb 92fe 9300 9303 ao 01 a2 01 a5 Bb 29 II fo 06 4a 90 02 e8 eb e8 Ba 20 12 bb a9 15 85 Of ao 60 20 5b 93 ao 03 84 7b a2 Oe 20 fa bb 20 ee bb 85 7c 20 dd bb do 6b 20 ee bb 85 1d 20 dd bb do 61 a4 7b 88 do eo 20 50 93 a6 7c a5 1d 20 b4 a3 a9 20 20 " bb 20 cc ff dcat4 a2 Oe 20 fa bb 20 ee bb 3210 9306 48 3211 9307 20 dd bb jsr dospar lda parsts and #$e6 beq dcatoo jmp snerr dcatoo ldy #$01 ldx #$0 I lda parsts and #$11 beq dcat2 lsr a bcc dcatl inx inx dcatl inx dcat2 txa jsr sendp dcat3 lda #$15 sta xcnt ldy #$60 jsr ochanl ldy #$03 sty argmoh ldx #$Oe jsr chkin jsr basin sta argmo JSr readst bne dcatio jsr basin sta arglo jsr readst bne dcatio ldy argmoh dey bne dcat3 JSr dcato ldx argmo lda arglo jsr linprt lda #$20 jsr bsout JSr kclrch ldx #$Oe jsr chkin jsr basin pha jsr readst ersatzwerte vor disk-befehl init. dos analyse-byte I ausgabe '?syntax error', ready das analyse-byte I das befehlsstring zusammensetzen u. ausgeben dos loop-zähler fac-arg ungepackt: mantisse eingabekanal öffnen, Fehlertest eingabe I char vom akt. kanal Iehn-vektor} fac-arg ungepackt: mantisse system-status in ac lesen eingabe I char vom akt. kanal Iehn-vektor} fac-arg ungepackt: mantisse system-status ~n ac lesen fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse umw. hex/dez, lo=xr, hi=ac, druck zeilen # ausgabe I char auf akt. kanal ein-/ausgabekanal schließen eingabekanal öffnen, Fehlertest eingabe 1 char vom akt. kanal Iehn-vektor} system-status in ac lesen

610/710 basic-bverbs3 hard+soft ass/reass... seite 0010 zeile adr. obj.-code source-code 3212 930a do 3b bne dcat9 3213 930c 20 50 93 jsr dcato 32" 930f &B pla 3215 9310 (0 05 beq dcat5 3216 9312 20 f4 bb jsr bsout ausgabe I char auf akt. kanal 3217 9315 90 e4 bcc dcat4 321B 9311 c& Of dcat5 dec xcnt dos loop-ziihler 3219 9319 a9 Od lda l$0d 3220 931b 20 bb jsr bsout ausgabe I char auf akt. kanal 3221 931e 20 cc " jsr kclrch ein-/ausgabekanal schließen 3222 9321 20 el " ff jsr kstop test stop-taste 3223 9324 fo 22 beq dcatio 3224 9326 15 Of lda xcnt dos loop-ziihler 3225 932B do 19 bne dcatb 3226 932a a9 15 lda 1$15 3221 932c BS Of sta xcnt dos loop-ziihler 322B 932& 20 57 9d jsr tstdir test direktmodus, hi-byt zeile=$ff 3229 9331 do 10 bne dcatb 3230 9333 a& Ia ldx channl speieherstelle für aktiven kanal 3231 9335 eo 00 cpx 1$00 3232 9331 do Oa bne dcatb 3233 9339 a2 24 ldx 1$24 3234 933b 20 c3 a3 jsr msg textzeiger + xr. textausgabe 3235 933e 20 e8 bb dcat7 jsr getin eingabe I char vom akt. kanal (queue-vektorl 3236 9341 fo fb beq dcat7 3231 9343 ao 02 dcatb ldy 1$02 323B 9345 do 85 bne dcat3 3239 9341 68 dcat9 pla 3240 9348 20 cc ff dcatio jsr kclrch ein-/ausgabekanal schließen 3241 934b a9 Oe lda #$Oe 3242 934d 20 12 bc jsr close carry= I, log. file schliessen 3243 9350 20 cc ff dcato jsr kclrch ein-/ausgabekanal schließen 3244 9353 ae 56 02 ldx dolu vorgabe für ausgabe-adresse 3245 9356 fo 4b beq goorat 3246 935B 4c 00 bc jmp chkout ausgabekanal öffnen, fehlertest 3241 935b 3248 93Sb 3249 935b ae 20 02 ochanl ldx dosfa dos primär-adresse 3250 93Se do 02 bne ochlio 3251 9360 a2 OB ldx 1$08 3252 9362 a9 Oe ochlio lda I$ Oe 3253 9364 20 ba " jsr kstlfs log. filenummer, geriite- und sekundäradr. eintragen 3254 9361 20 cc ff jsr kclrch ein-/ausgabekanal schließen 3255 936a 4c el bb jmp open log. file Öffnen/befehl ausgeben 3256 936d 3251 936d 325B 936d ===> disc-basic-routine 'dopen' <=== 3259 936d 3260 936d a9 22 dopen lda #$22 3261 936( 20 Be 93 jsr sav9 3262 9372 ao 02 ldy 1$02 3263 9374 az 04 ldx 1$04 3264 9316 24 Bb bit parsts dos analyse-byte I 3265 937B 50 Od bvc dopz 326& 937a a2 OB ldx #$0ß 3267 937c do 09 bne dop2

610/710 basic-bverbs3 hard+soft ass/reass.... seite 0071 zeile adr. obj.-code source-code 326B 937e 3269 937e 3270 937e ===> disc-basic-routine append' <=== 3271 937e 3272 937e a9 e2 append lda l$e2 3273 93BO 20 Be 93 jsr sav9 3214 93B3 ao 03 ldy 1$03 32 75 93B5 a2 05 ldx 1$05 3276 93B7 Ba dop2 txa 3277 938B 20 12 bb jsr sendp dos befehlsstring zusammensetzen u. ausgeben 327B 93Bb 4c 7e 92 jmp globtt 3279 93Be 32BO 93Be 32BI 93Be 20 49 b5 sav9 jsr dosprs 32B2 9391 20 19 b9 jsr chk6 32B3 9394 ao 61 ldy 1$61 3284 9396 cb fsca 10 iny 3285 9397 co 6f cpy l$6f 32B6 9399 fo 09 beq fsca20 3287 939b 20 Ba ff jsr klkups geräteadr. über sekundäradr.suchen 32BB 939e 90 f6 bcc fscaio 32B9 93a0 Be 21 02 sty dossa dos sekundär-adresse 3290 93a3 60 goorat rts 3291 93a4 3292 93a4 3293 93a4 az 02 fsca20 ldx 1$02 3294 93a6 4c 52 B5 jmp error ind. jmp zur fehlerroutine 3295 93a9 3296 93a 9 3297 93a9 ===> disc-basic-routine dclose <=== 329B 93a9 3299 93a9 a9 f3 dclose lda l$f3 3300 93ab 20 49 b5 jsr dosprs 3301 93ae 20 94 b9 jsr oldclr länge disk.status =0, system-status schreiben 3302 93bl a5 Bb lda parsts dos analyse-byte I 3303 93b3 29 04 and 1$04 3304 93b5 fo 06 beq dclall dos-ger;t log. file schliessen 3305 93b7 ad lf 02 lda dosla dos logische adresse 3306 93ba 4c 12 bc jmp close carry=l, log. file schliessen 3307 93bd 330B 93bd 3309 93bd ===> dos-ger;t log. file schliessen <=== 3310 93bd 33 II 93bd ad 20 02 dclall lda dosfa dos primär-adresse 3312 93c0 4c 92 95 jmp patch3 alle logischen files schliessen 3313 93c3 33" 93c3 3315 93c3 ===> disc-basic-routine 'dsave <=== 3316 93c3 3317 93c3 a9 66 dsave lda 1$66 331B 93c5 20 49 b5 jsr dosprs 3319 93cB 20 Ob bb jsr sav20 3320 93cb 4c le 92 jmp savenp 3321 93ce 3322 93ce 3323 93ce ===> disc-basic-routine dload' <===

6701770 basic-bverbs3 hard+soft ass/reass.... seite 0072 zeile adr. obj.-code source-code 3324 93ce 3325 93ce 3326 93d0 3327 93d3 3328 93d6 3329 93d8 3330 93db 3337 93de 3332 93de a9 e6 20 H b5 20 Ob bb a9 00 20 fd 97 4c cd 97 dload lda ll$e6 jsr dosprs jsr sav20 lda 11$00 jsr loadnp jmp loadck 3333 93de ===> basic-routine 'bank' <=== 3334 93de 3335 93de 3336 93e 7 3337 93e3 3338 93e5 3339 93e8 3340 93e9 33" 93e9 3342 93e9 330 93ec JJH 93ec 20 d6 M eo 10 bo 04 Be 57 02 60 cnbank jsr getbyt cpx 1$70 bcs xbkerr stx dfbank bsvrts rts xbkerr jmp fcerr 3345 93ec ===> disc-basic-routine 'bsave <=== 33'S 93ec 334 7 93ec a9 66 JJU 93ee a2 fb 33H 93f0 20 4b b5 3350 93f3 20 Ob b8 3357 93f6 ae lb 02 3352 3353 3354 3355 3356 3357 93f9 93fc 93ff 9403 9405 ac lc 02 ad Ia 02 86 64 85 66 ae 7d 02 3358 9408 ac le 02 3359 940b 4c 2e 92 3360 940e 336 7 940e bsave lda 11$66 ldx l$f8 jsr dosprx jsr sav20 ldx dosofl ldy dosof l+ 7 lda dosbnk stx highds sty highds+l sta highds+2 ldx dosofh ldy dosofh+ 1 jmp savenb 3362 940e ===> disc-basic-routine 'bload' <=== 3363 940e 3364 940e 3365 9410 3366 9n2 336 7 9415 3368 9418 3369 941b 3370 90c a9 e6 a2 fc 20 4b b5 20 Ob b8 ad Ia 02 18 ae lb 02 3371 94 1f ac lc 02 bload lda ll$e6 ldx 1$fc jsr dosprx jsr sav20 lda dosbnk clc ldx dosofl ldy dasafl l zahl < 256 aus akt. text nach xr vorgabe für bank-nummer ausgabe '?illegal quantity error', ready addrl dos offset untergrenze lbsave,bloadl addrh dos offset untergrenze lbsave,bloadl dos bank nummer addrl zielende /verschieben)/ temp. facll addrh zielende (verschieben/ temp.faclll bank zielende (verschieben/ temp.faclll addrl dos offset obergrenze lbsave,bloadl addrh dos offset obergrenze (bsave,bloadl teil der save-routine das bank nummer addrl dos offset untergrenze (bsave,blaad) addrh das affset untergrenze (bsave, blaadl

610/710 basic-bverbs3 hard+soft ass/reass.... seite 0073 zeile adr. obj.-code source-code 3372 9422 3373 9425 33H 9427 3375 942 7 20 06 bc 90 er jsr load bcc bsvrts 3376 9427 ===> disc-basic-routine 'header <=== 3377 9427 3378 3379 9427 942a 20 47 b5 20 f3 b8 format jsr dospar jsr chkl 3380 942d 29 " and #$1 I 3381 942f c9 I I cmp #$I I 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 9431 9433 9436 9439 943b 943d 943f 9442 9444 9446 9449 do 68 20 bd 93 20 5b b9 bo ad ao 04 a9 0' ae 23 02 fo 02 a9 06 20 78 95 20 22 b9 frmt6 bne rec5 jsr dclall jsr rusure bcs bsvrts ldy #$04 lda #$0' ldx dosdid beq frmt6 lda #$06 jsr trans jsr errchl 3393 9''c 20 57 9d 339' 9''f do 97 3395 9451 20 7d ba 3396 9,5, ao oo 3397 9,56 b I I 7 3398 3399 3,00 3,0, 3'02 9458 945a 945c 9'5f 945f c9 32 bo 03 'c Be ba 3403 945f a2 16 3,0, 946 I 'c 52 85 3405 946, 3406 946, frmtb jsr tstdir bne bsvrts jsr mapstr ldy #$00 einlesen vom logischen file ersatzwerte vor disk-befehl init. syntaxprüfung disk-basic dos-ger;t log. file schliessen bearbeitung are you sure?' dos erstes zeichen 'id' statusstring über sek.adr. 15 einlesen test direktmodus, hi-byt zeile=$ff umsch. auf bank # 2 lda ldsdesc+l),y addrl disc-status string cmp #$32 bcs frmtb jmp mapusr umsch. auf bank # I ldx #$16 jmp error 3'07 9464 ===> disc-basic-routine 'scratch' <=== 3408 946, 3,09 3410 34" 3"2 9464 946 7 946a 946d 20 47 b5 20 f3 bb 20 5b b9 bo 2b scratc jsr dospar jsr chkl jsr rusure bcs zxit 3413 946f ao Oa ldy #$0a 9471 a9 0' lda #$0' 3"' 3415 9473 20 78 95 jsr trans 3"6 9476 20 22 b9 jsr errchl 3" 7 3418 3"9 3420 3,2, 3422 3423 3424 3425 3426 342 7 9479 947c 94 7e 9480 9483 9486 9488 948a 9'8c 948f 9490 20 57 9d do lc a9 Od 20 H bb 20 7d ba ao 00 b I I 7 fo 06 20 f4 bb c8 do f6 jsr tstdir bne zxit lda #$0d jsr bsout jsr mapstr ldy #$00 ind. jmp zur fehlerroutine ersatzwerte vor disk-befehl init. syntaxprüfung disk-basic bearbeitung 'are you sure?' statusstring Über sek.adr. 15 einlesen test direktmodus, hi-byt zeile=$ff ausgabe I char auf akt. kanal umsch. auf bank # 2 sctcl lda (dsdesc+l),y addrl disc-status string beq sctc2 jsr bsout ausgabe I char auf akt. kanal iny bne sctcl

610/710 basic-bverbs3 hard+soft ass/reass... seite 007~ zeile adr. obj.-code source-code 3428 9492 3429 9494 3430 9497 3431 949a 3~32 9Ub 3433 949b a9 Od sctc2 lda l$0d 20 f4 bb jsr bsout 20 Be ba jsr mapusr 60 zxi t rts 3~3~ 949b ~c ~f 97 rec5 3435 949e 3436 949e jmp snerr 3~37 9~9e ===> disc-basic-routine "record" <=== 3438 949e 3439 949e a9 01 record lda 1$01 3440 94a0 Bd 22 02 sta dosrcl 34~1 94a3 20 29 ba jsr chrgot 3H2 94a6 a9 23 lda 1$23 3443 94a8 20 32 97 jsr synchr 34H 3H5 3H6 3H 7 94b2 3HB 94b5 3H9 94b8 3450 94ba 3451 94bc 3452 94bf 3453 94c2 345~ 9~c5 3455 94cB 3456 94cB 20 Bd b 7 eo oo fo 16 Be 1f 02 20 30 97 fo e 1 90 " 20 2d 97 20 e5 b4 20 2a 9 7 4c d3 9~ 3457 9~cB ~c 1b b7 rec4 345B 94cb 3459 94cb 94cb a2 06 rec6 94cd 94d0 4c 52 B5 3463 94d0 3464 9~d0 20 e5 b4 rec1 3465 94d3 20 29 ba rec2 3466 3467 346B 3469 3410 3411 3412 3H3 3414 3H5 94d6 9~dB 94db 9~dd 9460 9462 9464 9466 94eB 94eb 34 76 946e H77 9HO 3418 9H3 fo IB 20 30 97 fo be 20 Bd b7 eo 00 fo e4 eo ff fo eo Be 22 02 20 29 ba do ab ad 1f 02 20 Bd ff aaaa rec3 jsr gtvl2 cpx 1$00 beq rec4 stx dosla jsr chkcom beq rec5 bcc rec 1 jsr chkopn jsr getpin jsr chkcls jmp rec2 jmp qtyerr ldx 1$06 jmp error jsr getpin jsr chrgot beq rec3 jsr chkcom beq rec5 jsr gtvl2 cpx 1$00 beq rec~ cpx l$ff beq rec4 stx dosrcl jsr chrgot bne rec5 lda dosla jsr klkupl ausgabe 1 char auf akt. kanal umsch. auf bank I I ausgabe "?syntax error", ready dos record-länge letztes zeichen erneut nach ac tindirekter sprung} test:folgt ascii o. token im akt. text, sonst error dos logische adresse tes t 'komma sonst fehl er + ready test I, sonst fehler + ready dezimal-zahl in klammer nach linnum einlesen test' I', sonst fehler +ready ausgabe "illegal quantity error", ready ind. jmp zur fehlerroutine dezimal-zahl in klammer nach linnum einlesen letztes zeichen erneut nach ac (indirekter sprungi test 'komma sonst fehler ready dos record-länge letztes zeichen erneut nach ac (indirekter sprung} dos logische adresse geräte- sekundäradr. über logische file I suchen

610/710 basic-bverbs3 hard+soft ass/reass.... seite 0075 zeile adr. obj.-code source-code 3479 94f6 bo d3 3480 94f8 Be 21 02 3481 94fb Be 20 02 3482 94fe 20 ba ff 3483 9501 20 94 b9 3484 9504 ao Ob 3485 9506 a9 04 3486 9508 do 6e 348 7 950a 3488 950a bcs rec6 sty dossa stx dosfa jsr kstlfs jsr oldclr ldy #$Ob lda #$04 bne trans dos sekundär-adresse dos primär-adresse log. filenummer, geräte- und sekundäradr. eintragen länge disk.status =0, system-status schreiben 3489 950a ===> disc-basic-routine 'dclear <=== 3490 950a 3491 950a 20 47 b5 dclear jsr dospar ersatzwerte vor disk-befehl init. 3492 950d ao oo ldy #$00 3493 3494 950f 9511 a9 02 do 65 lda #$02 bne trans 3495 9513 3496 9513 3497 9513 ===> disc-basic-routine 'collect' <=== 3498 9513 3499 9513 20 47 b5 colect jsr dospar ersatzwerte vor disk-befehl init. 3500 9516 20 05 b9 jsr chk3 3501 9519 20 bd 93 jsr dclall dos-ger;t log. file schliessen 3502 951c ao 05 ldy #$05 3503 951e a2 01 ldx lt$01 3504 9520 a5 Bb lda parsts dos analyse-byte 1 3505 9522 29 10 and #$10 3506 9524 fo 01 beq clct2 3507 9526 eb inx 3508 9527 Ba clct2 txa 3509 9528 do 4e bne trans 3510 952a 3511 952a 3512 952a ===> disc-basic-routine 'copy' <=== 3513 952a 3514 952a 20 47 b5 dcopy jsr dospar ersatzwerte vor disk-befehl init. 3515 952d 29 30 and #$30 3516 952f c9 30 cmp lt$30 3517 9531 do 06 bne dcpy2 3518 9533 a5 8b lda parsts dos analyse-byte 1 3519 9535 29 c7 and #Sc 7 3520 9537 fo 07 beq dcpy4 3521 9539 a5 Bb dcpy2 lda parsts dos analyse-byte 3522 953b 20 Oa b9 jsr chk4 3523 953e a5 Bb lda parsts das analyse-byte 3524 9540 ao 01 dcpy4 ldy #$07 3525 9542 a9 OB lda #$08 3526 95H do 32 bne trans 3527 9546 3528 9546 3529 9546 ===> disc-basic-routine 'concat' <=== 3530 9546 3531 9546 20 47 b5 concat jsr dospar 3532 9549 20 Oa b9 jsr chk4 3533 954c ao 08 ldy #$08 3534 954e a9 Oe lda #$Oe ersatzwerte vor d1sk-befehl 1nit.

6101710 basic-bverbs3 hard+soft ass/reass... seite 0076 zeile adr. obj.-code source-code 3535 9550 do 26 bne trans 3536 9552 3537 9552 3538 9552 ===> disc-basic-routine rename <=== 3539 9552 35'0 9552 a9 e' rename lda #$e' 3541 9554 20 H b5 jsr dosprs 35'2 9557 20 10 b9 jsr chk5 350 955a ao 09 ldy #$09 35H 955c a9 OB lda #$08 3545 955e do 18 bne trans 35H 9560 3547 9560 3548 9560 ===> disc-basic-routine 'backup' <=== 3549 9560 3550 9560 a9 c7 backup lda #$c7 3551 9562 20 H b5 jsr dosprs 3552 9565 29 30 and #$30 3553 956 7 c9 30 cmp #$30 355, 9569 do 83 bne aaaa 3555 956b 20 5b b9 jsr rusure bearbeitung are you sure?. 3556 956e 90 01 bcc bupl 3557 9570 60 rts 3558 9571 3559 9571 3560 9571 20 bd 93 bupl jsr dclall dos-ger;t log. file schliessen 3561 9574 ao 06 ldy #$06 3562 9576 a9 0' lda #$0, 3563 9578 20 12 bb trans jsr sendp dos befehlsstring zusammensetzen u. ausgeben 35H 957b 20 cc ff jsr kclrch ein-/ausgabekanal schlieben 3565 957e 38 sec 3566 957f 20 e2 bb jsr opnio 3567 9582 'c 50 93 jmp dcato 3568 9585 3569 9585.end 3570 9585.lib mathl

610/710 basic-mathl hard+soft ass/reass.... seite 0077 zeile adr. obj.-code source-code 3572 9585 3573 9585 ===> prüfbyte rom $8000-$9fff <=== 3574 9585 3575 9585 22 forfix.byte $22 35 76 9586 3577 9586 3578 9586 ===> system-status schreiben, iec Listen <=== 3579 9586 3580 9586 20 94 b9 patchl jsr oldclr 3581 9589 4c 00 bc 3582 95Bc 3583 958c jmp chkout 3584 958c ===> system-status schreiben, iec-talk <=== 3585 958c 3586 958c 20 94 b9 patch2 jsr oldclr 358 7 958f 4c fa bb jmp chkin 3588 9592 3589 9592 3590 9592 ===> alle logischen files schliessen <=== 3591 9592 3592 9592 38 patch3 sec 3593 9593 4c e7 ff jmp kclall 3594 9596 3595 9596 3596 9596 = $2b 3597 95cl länge disk.status =0, system-status schreiben ausgabekanal offnen, Fehlertest länge disk.status =0, system-status schreiben eingabekanal öffnen, Fehlertest alle logischen files schliessen 3598 95cl 6c Be 02 frmevl jmp lifrmevl addrl beliebigen ausdruck auswerten 3599 95c4 3600 95c4 3601 95c4 ===> auswertung beliebiger ausdruck <=== 3602 95c4 3603 95c4 3604 95c6 3605 95c8 3606 95ca 3607 95cc 3608 95ce 3609 95cf 3610 95cf a6 85 do 02 c6 86 c6 85 a2 00 24 nfrmev ldx txtptr bne frmevl dec txtptr+l frmevl dec txtptr ldx #$00.byte $24 3611 95cf ===> schleifenanfang <=== 3612 95cf 3613 95cf 48 36 H 95d0 Ba 3615 95dl 48 3616 95d2 3617 95d4 3618 95d7 a9 01 20 66 88 20 ae 96 3619 95da a9 00 3620 95dc 85 5a 3621 95de 20 29 ba 3622 3623 3624 3625 95e I 95e2 95e4 95e6 38 e9 bl 90 17 c9 03 lpoper pha txa pha lda #$0 I jsr getstk jsr eval tstop lda #$00 sta opmask jsr chrgot loprel sec sbc #$bl bcc endrel cmp #$03 addrl zeiger auf akt. term addrh zeiger auf akt. term addrl zeiger auf akt. term test stapelplatz jmp: folgenden beliebigen ausdruck auswerten vom akt. operator erzeugte bit-maske letztes zeichen erneut nach ac!indirekter sprungl

6101710 basic-mathl hard soft asslreass... seite 007B zeile adr. obj.-code source-code 3626 95eB 3627 95ea 362B 95ec 3629 95ed 3630 95ef 3631 95fl 3632 95f3 3633 95f5 3634 95f7 3635 95fa 3636 95fd 3637 95fd 363B 3639 3640 3641 3642 3643 95fd 95ff 9601 9603 9605 9607 bo 13 c9 01 2a 49 01 45 5a c5 5a 90 61 B5 5a 20 26 ba 4c e 1 95 a6 5a do 2c bo 7f 69 07 90 7b 65 II 3644 9609 do 03 3645 960b 4c 7a aa 3646 960e 3647 960e 3648 960e 69 ff 3649 9610 B5 22 3650 9612 Oa 3651 9613 65 22 3652 9615 ab 3653 9616 6B 9617 d9 dl BO 3655 3656 3651 3658 3659 3660 3661 3662 3663 3664 3665 961a 961c 961f 9620 9623 9624 9626 9628 9629 962b 962d 3666 962f Ba 3667 366B 3669 3610 3671 3612 3613 3614 3675 9630 9631 9633 9635 9637 9639 963b 963d 963f ao 3676 9642 3677 96H 36 1B 9646 3679 9646 bo 6b 20 04 b5 48 20 46 96 6B a4 57 10 11 aa fo 5a do 63 46 II 2a a6 B5 do 02 c6 B6 c6 B5 lb 85 5a do d1 d9 d I 80 bo 4c 90 d9 bcs endrel cmp #$0 I rol a eor #$0 I eor opmask cmp opmask bcc snerr5 sta opmask jsr chrget jmp loprel endrel ldx opmask bne finrel bcs qop adc #$0 7 bcc qop adc val typ bne endrel jmp cat endre I adc #$ff sta indexl asl a adc indexl tay qprec pla cmp optab.y bcs qchnum jsr chknum doprec pha negprc jsr doprel pla ldy opptr bpl qprecl tax beq qopgo bne pulstk finrel lsr valtyp txa rol a ldx txtptr bne finre2 dec txtptr l finre2 dec txtptr ldy #$lb sta opmask bne qprec qprecl cmp optab,y bcs pulstk bcc doprec vom akt. operatorerzeugte bit-maske vom akt. operator erzeugte bit-maske ausgabe '?syntax error', ready vom akt. operator erzeugte bit-maske nächstes zeichen nach ac (ind.jmpj vom akt. operator erzeugte bit-maske flag für variablen typ (O;num, l;s tringl string verketten addrl indirekter index #I addrl indirekter index #I adresse I prioritätsflags der math. raut. prüfen, ob numerische variable op-rout.adr. u. operand auf stapel addrl zeiger akt. operator-routine flag für variablen typ (O;num, l;string! addrl zeigerauf akt. term addrh zeigerauf akt. term addrl zeigerauf akt. term vom akt. operatorerzeugte bit-maske adresse I prioritätsflags der math. rout.

6101710 basic-mathl hard+soft asslreass... seite 0079 zeile adr. obj.-code source-code 3680 9646 ===> op-rout.adr. u. operand auf stapel <=== 3681 9646 3682 9646 b9 d3 80 doprel lda optab+l+l,y adresse I prioritätsflags der math. rout. 3683 9649 48 3684 964a b9 d2 80 3685 964d 48 3686 368 7 3688 964e 9651 9653 20 59 96 a5 5a 4c cf 95 3689 9656 pha lda optab+ I, y pha jsr pushfl lda opmask jmp lpoper adresse I prioritätsflags der math. rout. operanden auf stapel legen vom akt. operatorerzeugte bit-maske schleifenanfang 3690 9656 3691 9656 4c 4f 97 snerrs jmp snerr ausgabe "?syntax error", ready 3692 9659 3693 9659 3694 9659 ===> operanden auf stapel legen <=== 3695 9659 3696 9659 a5 76 pushfl lda facsgn 3697 96Sb be dl 80 ldx optab,y 3698 3699 3700 370 I 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3 716 3717 3718 3719 3720 965e 96Sf 9660 9662 9663 9665 9666 9667 9669 966b 966d 9670 96 72 9673 9675 9676 96 78 9679 967b 967c 96 7e 967f 9682 ab 68 85 22 68 85 23 98 48 e6 22 do 02 e6 23 20 f2 a I a5 75 48 as 74 48 a5 73 48 as 72 48 a5 71 48 6c 22 oo 3721 9682 3722 9682 ao ff 3723 9684 68 3724 3725 3726 3 72 7 3728 3729 3730 3 731 3732 3733 3734 9685 9687 9689 968b 968e 9690 9691 9692 9695 9696 9698 fo 24 c9 64 fo 03 20 04 bs 84 57 68 4a Bd 59 02 68 85 79 68 pushf tay pla sta indexl pla sta indexl+l tya pha inc indexl bne forpsh inc indexl+l forpsh jsr round lda faclo pha lda facmo pha lda facmoh pha lda facho pha lda facexp pha jmp ( index I J qop ldy #$ff pla qopgo beq qoprts qchnum cmp #$64 beq unpstk ]Sr chknum unpstk sty opptr pulstk pla pulst! lsr a sta tansgn pla sta argexp pla fac #1: vorzeichen adresse I prioritätsflags der math. rout. addrl indirekter index #I addrh indirekter index #I addrl indirekter index #I addrh indirekter index #I fac #I rundung fac #1: mantisse fac #1: mantisse fac #1: mantisse fac #I: mantisse fac #I: exponent addrl indirekter index #I prüfen, ob numerische variable addrl zeiger akt. operator-routine flag für 'tan' vorzeichen fac-arg ungepackt: exponent

610/710 basic-mathl hard+soft ass/reass.... seite 0080 zeile adr. obj.-code source-code 3735 3736 3T37 3738 3739 3740 3741 3742 3743 37H 3745 9699 969b 969c 969e 969f 96al 96a2 96a4 96a5 96a T 96a9 3146 3T41 96ab 96ad 3148 96ae 3T49 96ae 3750 96ae 3751 96b' 3752 96b' 85 Ta 68 85 Tb 68 85 Tc 611 85 7d 68 85 Te 45 T6 85 Tf a5 71 60 sta argho pla sta argmoh pla sta argmo pla sta arglo pla sta argsgn eor facsgn sta arisgn qoprts lda facexp rts 6c Ba 02 eval jmp lievall 3753 96bl ===> folgenden num. ausdruck auswerten <=== 3154 96b' 3755 96b I a 9 00 neval lda 1$00 3756 96b3 85 '' sta valtyp fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: vorzeichen fac II: vorzeichen fac-arg ungepackt: Vorzeichenduplikat fac #1: exponent addrl beliebigen ausdruck auswerten flag für variablen typ IO=num. l=string} 3757 96b5 3758 96b5 3759 96b5 ===> folgenden beliebigen ausdruck auswerten <=== 3 760 96b5 3761 96b5 20 26 ba evalo jsr chrget nächstes Zeichen nach ac lind.jmpl 3762 96b8 bo 16 bcs eval2 folgenden ausdruck (keine zifferl auswerten 3763 96ba 4c d8 a2 evall jmp fin jmp: umw. zahlenstring in gk-zahl 3764 96bd 3765 96bd 3766 96bd ===> prüfen ob konstante pi <=== 376 7 96bd 3768 96bd 3 769 96bf 3770 96cl 3771 96c3 3772 96c5 3773 96c8 3774 96cb c9 ff do 16 a9 cb ao 96 20 66 al 4c 26 ba eval22 cmp #$ff bne qdot lda #$cb ldy #$96 jsr movfm jmp chrget prüfen ob ausdruck mit beginnt vari adr.lo=ac, hi=yr nach fac II nächstes zeichen nach ac lind.jmpl 3 775 96cb 3776 96cb ===> konstante pi <=== 3777 96cb 3778 96cb 82 pival.byte $82, $49, $0f, $da, $al 37 78 96cc 49 3778 96cd Of 3778 96ce da 3778 96cf al 3779 96d0 3780 96d0 3781 96d0 ===> folgenden ausdruck (keine zifferl auswerten <=== 3782 3783 3784 3785 96d0 96d0 96d3 96d5 20 bf 99 90 e8 bo 7d eval2 jsr isletc bcc eval22 bcs isvar test ac = buchstabe, ja carry=l prüfen ob konstante pi vorber. für variablensuche

610/710 basic-mathl hard+soft ass/reass... seite OOBI zeile adr. obj.-code source-code 37B6 37B7 96d7 96d7 37BB 96d7 ===> prüfen ob ausdruck mit beginnt <=== ' H N ' erfassen <=== 37B9 96d7 3790 3791 96d7 96d9 c9 2e fo df beq evall qdot cmp 1$2e jmp: umw. zahlenstring in gk-zahl 3792 96db c9 ab cmp l$ab 3793 96dd fo Je beq domin basic-routine - 3794 96df c9 aa cmp l$aa 3795 96el fo d2 beq evalo folgenden beliebigen ausdruck auswerten 3796 96e3 c9 22 cmp 1$22 3797 96e5 do 09 bne eval3 prüfen ob token not 379B 96e 7 3799 96e7 3BOO 96e7 ===> string in 3BOI 96e7 3B02 96e7 20 6b 90 strtxt jsr sav30 bank akt. text nach xr, wenn carry=l textzeiger increment 3B03 96ea 20 lf ab jsr strlit sucht elemente von zeichenkette 3B04 96ed 4c f3 ab jmp st2txt 3B05 96f0 3B06 96f0 3B07 96f0 ===> prüfen ob token not' <=== 3BOB 96f0 3B09 96f0 c9 ab eval3 cmp l$ab 3BIO 96f2 do 13 bne eval4 prüfen ob token 'fn 3B 11 96H ao IB ldy I$1B 3BI2 96f6 do 27 bne gonprc not 0. - bearbeiten 3BI3 96f8 3B" 96f8 3BI5 96f8 ===> basic operations-routine not' <=== 3816 96f8 3817 96f8 20 13 9b notop jsr ayint umwandlung real nach integer 3BI8 96fb a5 75 lda faclo fac II: mantisse 3819 96fd 49 ff eor 1$ff 3820 96ff ab tay 3821 9700 a5 74 lda facmo fac II: mantisse 3822 9 702 49 ff eor l$ff 3823 9704 4c 39 9d jmp givayf umw. integer nach real 3B24 9707 3825 9 707 3826 9 707 ===> prüfen ob token 'fn <=== 3827 9 70 7 3828 9 70 7 c9 a5 eval4 cmp l$a5 3829 9709 do 03 bne eval5 auswerten math. Funktion 3830 970b 4c 71 9d jmp fndoer umwandlung fnx 3831 970e 3832 3833 970e 970e auswerten math. funktion <=== ===> 3834 970e 3835 970e c9 b4 eval5 cmp #$b4 3836 9710 90 12 bcc parchk.. test (. I., sonst fehler, ready 3837 9112 c9 e7 cmp #$e7 3838 9 7" bo 04 bcs eval6 sprung nach Funktionsart-test 3839 9716 c9 cb cmp #$cb 3840 9 718 bo 35 bcs snerr ausgabe '?syntax error ready 3841 971a 4c 21 98 eval6 jmp isfun sprung nach Funktionsart-test

610/710 basic-mathl hard+soft ass/reass...... seite 0082 zeile adr. obj.-code source-code 3842 971d 3843 971d 3844 971d ===> basic-routine - <=== 3845 971d 3846 971d ao 15 domin ldy 1$15 3841 971f 3848 971f 3849 971f ===> not" o. - bearbeiten <=== 3850 971f 3851 971f 68 gonprc pla 3852 9 720 68 pla 3853 972 I 4c 20 96 jmp negprc 3854 9 724 3855 9724 3856 9724 ===> test "I J, sonst fehler. ready <=== 3857 9 724 3858 9724 3859 9 72 7 3860 972a 3861 972a 3862 972a 3863 912a 3864 972a 3865 972c 3866 972d 386 7 972d 3868 972d 3869 912d 3870 972d 38 7 I 9 12f 20 2d 97 20 c I 95 parchk jsr chkopn jsr frmevl ===> test'j ', sonst fehler +ready<=== a9 29 2c chkcls lda 1$29.byte $2c ===> test "I. sonst fehler +ready <=== a9 28 chkopn lda 1$28 2c.byte $2c 3872 9730 3873 9130 3874 9730 ===> test "komma sonst fehler +ready <=== 3875 9730 3876 9730 a9 2c 3877 9732 3878 9732 chkcom lda 1$2c test "(", sonst fehler +ready auswertung beliebiger ausdruck 3879 9732 ===> test:folgt ascii o. token im akt. text, sonst error <=== 3880 9132 8d 5b 02 a4 01 Be 5c 02 a4 8 7 84 01 ao 00 b 1 85 synchr sta ldaadr ldy i6509 sty ldaadr+1 ldy txtptr+2 sty i6509 ldy 1$00 lda ltxtptrj,y addrl modifiable adresse 6509 indirection register addrh modifiable adresse bank zeiger auf akt. term 6509 indirection register addrl zeiger auf akt. term ac 5c 02 ldy ldaadr+1 addrh modifiable adresse 84 u' sty i6509 6509 indirection register cd 5b 02 cmp ldaadr addrl modifiable adresse do 03 bne snerr ausgabe "?syntax error ready 4c 26 ba jmp chrget nächstes zeichen nach ac lind.jmpj 388, 9732 3882 9135 3883 9737 3884 973a 3885 973c 3886 973e 3887 9740 3888 9742 3889 9745 3890 9747 3891 974a 3892 974c 3893 97H 3894 97H 3895 97H 3896 97H 3897 97H 3898 9 75 I 3899 9754 ===> ausgabe '?syntax error ready <=== a2 2a 4c 52 85 snerr ldx #$2a jmp error ind. jmp zur fehlerraueine

610/710 basic-mathl hard+soft ass!reass... seite 0083 zeile adr. obj.-code source-code 3900 9754 3901 9754 ===> vorber. für variablensuche <=== 3902 9 754 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 9754 9757 9759 975b 975d 975f 9761 9763 9765 9 76 7 9769 976c 976e 9 7 70 9712 9774 20 2c 99 85 " 84 75 86 76 a6 H a4 50 a5 II fo Je a9 00 85 80 20 Oe ba bo 2b eo 54 do 07 co c9 do 17 3919 9776 4c 5c ac 3920 9779 3921 9719 isvar 3922 9719 ===> test 'ds$ <=== 3923 3924 9 779 9779 eo 44 3925 9 7 Tb do 10 3926 977d co d3 3927 977f do Oe 3928 3929 3930 3931 3932 3933 3934 9 781 9 784 9786 9788 978a 978d 978d 20 9a 9 7 a5 17 a4 18 a6 19 4c lf ab jsr ptrget sta facmo s ty faclo stx facsgn ldx varnam ldy varnam+l lda valtyp beq goo lda #$00 sta fa-cov jsr tstrom bcs isvrts cpx #$54 bne isvds cpy #$c9 bne strrts jmp gettim isvds cpx #$44 bne strrts cpy #$d3 bne strrts jsr chkds lda dsdesc+l ldy dsdesc+2 ldx dsdesc+3 jmp strlit variable suchen/anlegen, deren name folgt fac #1: mantisse fac #1: mantisse fac #1: vorzeichen erstes zeichen akt. variablenname zweites zeichen akt. Variablenname flag für variablen typ (O=num, l=string) num. variable auswerten fac overflow-byte test 'ds$' 3935 978d ===> 3 byt-vektor top-ram memtop nach $74 <=== 3936 9 78d 3937 978d a5 3f strrts lda memtop 3938 9 78f 85 " sta facmo 3939 9791 a5 40 lda memtop+l 3940 3941 3942 3943 3944 9793 9795 9 79 7 9799 979a 85 75 a5 41 85 76 60 s ta faclo lda memtop+2 sta facsgn isvrts rts 3 byt-vektor top-ram memtop nach $14 interne uhrzeit nach ti$ 3 byt-vektor top-ram memtop nach $14 3 byt-vektor top-ram memtop nach $14 test/übernahm& diskstatus addrl disc-status string addrh disc-status string bank disc-status string sucht elemente von zeichenkette addrl höchste ram-speicherstelle fac #1: mantisse addrh höchste ram-speicherstelle fac #1: mantisse bank höchste ram-speicherstelle fac #1: vorzeichen 3945 979a 3946 979a ===> test/übernahme diskstatus <=== 3947 979a 3948 979a a5 16 chkds lda dsdesc länge disc-status string 3949 979c do fb bne isvrts 3950 979e 4c 22 b9 jmp errchl statusstring Liber sek.adr. 15 einlesen 3951 97a 1

610/710 basic-mathl hard+soft ass/reass.... seite OOB4 zeile adr. obj.-code source-code 3952 9 7a I 3953 97a I ===> num. variable auswerten <=== 3954 9 7a I 3955 97a I 24 12 goo bi t intflg flag für integer-variable 3956 9 7a3 10 14 bpl gooo gk-variable bearbeiten 3957 9 7a5 a5 76 lda facsgn fac II: vorzeichen 395B 9 7a 7 B5 01 sta i6509 6509 indirection register 3959 97a9 ao 00 ldy #$00 3960 97ab bl 74 lda (facmo},y fac II: mantisse 3961 97ad aa tak 3962 97ae c8 iny 3963 97af bl 74 lda (facmoj,y fac #I: mantisse 3964 97b I ab tay 3965 97b2 20 Be ba jsr mapusr ums eh. auf bank # 3966 9 7b5 Ba tka 3967 97b6 4c 39 9d jmp givayf umw. integer nach real 396B 97b9 3969 97b9 3970 97b9 gk-variable bearbeiten <=== ===> 39 71 97b9 3972 97b9 20 Oe ba gooo jsr tstrom 3973 9 7bc 90 09 bcc qstatv status-variable st' bearbeiten 3974 97be a5 74 lda facmo fac #I: mantisse 3975 97c0 a4 75 ldy faclo fac II: mantisse 3976 97c2 a6 76 ldk facsgn fac #I: Vorzeichen 3977 9 7c4 4c 6B a I jmp movfum 3978 97c7 3979 9 7c 7 39BO 9 7c7 ===> status-variable st' bearbeiten <=== 39BI 97c7 3982 97c 7 eo 53 qstatv CpK #$53 39B3 97c9 do Oa bne qerlin fehlerzeile-variable el bearbeiten 3984 97cb co 54 cpy #$54 39B5 97cd do 06 bne qerlin fehlerzeile-variable el bearbeiten 3986 97cf 20 dd bb jsr readst system-status in ac lesen 39B 7 97d2 4c 13 a2 jmp float status-byte in fac 39BB 97d5 3989 97d5 3990 97d5 ===> fehlerzeile-variable el bearbeiten <=== 3991 97d5 3992 97d5 eo 45 qerlin CPK #$45 3993 97d7 do I 7 bne qdsav diskstatus-variable ds bearbeiten 3994 97d9 co 52 cpy #$52 3995 97db fo Od beq qnumer fehlernummer-variable er bearbeiten 3996 97dd co 4c cpy #$4c 3997 97df do Of bne qdsav diskstatus-variable 'ds bearbeiten 399B 9 7e I ad 99 02 lda errlin+1 hi-byte zeilennummer akt. fehl er 3999 9 7e4 ac 9B 02 ldy errlin lo-byte zeilennummer akt. fehl er 4000 9 7e 7 4c 2C 9d jmp nosl ft 4001 9 7ea 4002 9 7ea 4003 9 7ea ===> fehlernummer-variable er bearbeiten <=== 4004 9 7ea 4005 9 lea a5 Bf qnumer lda errnum fehlernummer für 'trap' 4006 97ec,. lsr a 4007 97ed 4c 13 a2 ]mp float status-byte in fac 4008 97f0

610/710 basic-mathl hard+soft ass/reass.... seite 0085 zeile adr. obj.-code source-code 4009 97f0 4010 97f0 ===> diskstatus-variable 'ds' bearbeiten <=== 4011 97f0 4012 4013 4014 4015 4016 4017 4018 4019 4020 97f0 97f2 97f4 97f6 97f8 97fb 97fe 9800 9802 eo 44 do 26 co 53 do 22 20 9a 9 7 20 7d ba ao 00 b 1 17 29 Of qdsav 4021 9804 Oa 4022 9805 85 13 4023 9807 Oa 4024 9808 Oa 4025 9809 65 13 4026 980b 85 13 4027 980d 4028 980e 4029 9810 4030 9813 4031 9815 4032 9817 4033 981a 4034 981a 4035 981a 4036 981c 4037 981e 4038 9821 4039 9821 cb b 1 17 20 Be ba 29 Of 65 13 4c 13 a2 a5 74 a 4 75 4c 66 a 1 cpx #$H bne gomovf cpy #$53 bne gomovf jsr chkds jsr mapstr ldy #$00 lda (dsdesc+l),y and l$0f asl a sta dores asl a asl a adc dores sta dores iny test/übernahme diskstatus umsch. auf bank I 2 addrl disc-status string flag für token o. ascii/garbage-flag flag für token o. ascii/garbage-flag flag für token o. ascii/garbage-flag lda (dsdesc l),y addrl disc-status string jsr mapusr umsch. auf bank # 1 and #$0f adc dores jmp floa t gomovf lda facmo ldy faclo jmp movfm 4040 9821 ===> Funktionsart Überprüfen <=== 404 1 9821 4042 9821 Oa isfun asl a 4043 9822 48 pha 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 W62 4063 4064 4065 4066 9823 9824 9827 9829 982b 982d 982f 9832 9835 9838 983b 983c 983e 9840 9841 9843 98H 9846 9847 9849 984a 984b 984c aa 20 26 ba eo Bf 90 2b eo ce fo 76 20 2d 97 20 c 1 95 20 30 97 20 06 b5 68 c9 do fo 62 aa a5 76 48 a5 75 48 a 5 74 48 Ba 48 20 d6 b4 tax jsr chrget cpx l$8f bcc oknorm cpx #$ce beq errjmp JSr chkopn jsr frmevl jsr chkcom jsr chkstr pla cmp #$d0 beq ins]mp tax lda facsgn pha lda faclo pha lda facmo pha txa pha jsr getbyt flag für token o. ascii/garbage-flag status-byte in fac fac 11: mantisse fac 11: mantisse vari adr.lo=ac, hi=yr nach fac 11 nächstes zeichen nach ac lind.jmpl sprung basic-routine 'err$ (x)' test '(, sonst fehler ready auswertung beliebiger ausdruck tes t komma sonst fehl er ready prüfen, ob stringvariable basic-routlne 'instring fac 11: vorzeichen fac #1: mantisse fac #1: mantisse zahl < 256 aus akt. text nach xr

610/710 basic-mathl hard+soft ass/reass... seite 0086 zeile adr. obj.-code source-code 4067 406B 4069 40 70 4071 4072 4073 4074 40 75 4076 4077 407B 4079 4080 4081 4082 98H 68 9850 ab 9851 Ba 9852 48 9853 4c 5b 9B 9B56 9B56 9856 9B59 9B5a 985b 9B5e 9B60 9863 9B65 9B68 4083 986b 4084 986b 20 24 97 6B ab b9 3b BO B5 62 b9 Je BO 85 63 20 61 00 4c 04 b5 pla tay txa pha jmp fingo oknorm jsr parchk pla tay fingo lda stmdsl,y sta jmper+l lda s tmds I+ I, y sta jmper+2 jsr jmper jmp chknum 40B5 986b ===> basic operations-routine or <=== 4086 986b 4087 9B6b ao ff 40BB 986d 2c 4089 986e 4090 986e orop ldy l$ff.byte $2c 4091 986e ===> basic operations-routine and' <=== 4092 986e 4093 986e 4094 9870 4095 9B73 4096 98 76 4097 9B78 409B 98 7b 4099 987d 4100 98 7f 410 I 9882 4102 9B84 4103 9887 4104 98Ba 4105 988c 4106 988f 4107 9891 4108 9B94 4109 9895 4 110 9B9 7 989a "" 4 112 989c 4113 989f 98a2 "" 4115 9Ba2 4116 98a2 4117 98a5 4118 9Ba5 4119 9Ba5 4120 98a8 4121 9Ba8 ao oo Be 56 02 20 13 9b a5 74 4d 56 02 85 Oe a5 75 4d 56 02 85 Od 20 d3 al 20 13 9b a5 75 4d 56 02 25 Od 4d 56 02 ab a5 74 4d 56 02 25 Oe 4d 56 02 4c 39 9d 4c e9 ae 4c 00 ac andop ldy 1$00 sty eormsk jsr ayint lda facmo eor eormsk sta charac lda faclo eor eormsk sta endehr jsr movfa jsr ayint lda faclo eor eormsk and endehr eor eormsk tay lda facmo eor eormsk and charac eor eormsk jmp givayf insjmp jmp incopo errjmp jmp errd 4122 98a8 ===> basic operations-routine '<=>' <=== 4123 4124 tes t ' ( 'I ', sonst fehler, ready addrl sprung zu functions-rout. addrh sprung zu functions-rout. $4c wert für 'jmp (functions-rout. I prüfen, ob numerische variable bitmaskefür wait' umwandlung real nach integer fac tl: mantisse bitmaske für wait' puffer für trennzeichen fac tl: mantisse bitmaske für wait' puffer für trennzeichen copy arg nach fac tl, yr umwandlung real nach integer fac tl: mantisse bitmaske für 'wait' puffer für trennzeichen bitmaske für wait fac II: mantisse bitmaske für wait' puffer für trennzeichen bitmaske für wait' umw. integer nach real basic-routine 'instring sprung basic-routine err$ (xl 9Ba8 98a8 20 07 b5 dorel jsr chkval prüft ob richtiger variablentyp

670/770 basic-math7 hard+soft ass/reass.... seite OOB7 zeile adr. obj.-code source-code 4725 9Bab bo 73 strcmp bcs routine. <=>. für string 4126 9Bad a5 7e lda argsgn fac-arg ungepackt: vorzeichen 4127 9Baf 09 7f ora ll$7f 412B 9Bb7 25 7a and argho fac-arg ungepackt: mantisse 4729 9Bb3 B5 7a sta argho fac-arg ungepackt: mantisse 4730 9Bb5 a9 79 lda 11$79 4 73 7 4 732 9Bb7 9Bb9 ao 00 20 32 a2 jsr fcomp ldy #$00 vergleich fac 17 mit var1 (ac!yrl 4 73' 4 733 9Bbc aa tax 9Bbd 4c 05 99 jmp qcomp bringt wahrheitswert nach fac 4 135 9Bc0 4137 9Bc0 4136 9Bc0 routine. <=>. für string <=== ===> 473B 9BcO 4139 9Bc0 a9 00 strcmp lda #$00 4740 9Bc2 B5 77 sta valtyp flag für variablen typ IO=num, 7=stringl 4 74 7 9Bc' c6 5a dec opmask vom akt. operator erzeugte bit-maske 4 742 9Bc6 20 e9 ab jsr frefac stringverwaltung, freier string 4743 9Bc9 B5 70 sta dsctmp zeitweise descriptoren-ablage 47H 9Bcb a2 02 ldx #$02 4145 9Bcd b5 22 grrk lda index 7. x addrl indirekter index facexp,x fac 17: exponent " 4746 9Bcf 95 77 sta 4147 9Bd7 ca dex 4 748 9Bd2 70 f9 bpl grrk 4749 9Bd4 a5 7c lda argmo fac-arg ungepackt: mantisse 4 750 98d6 a4 7d ldy arglo fac-arg ungepackt: mantisse 4 757 9BdB a6 7e ldx argsgn fac-arg ungepackt: vorzeichen 4 752 9Bda 20 ef ab jsr fretmp 4753 9Bdd a6 22 ldx index 7 addrl indirekter index 117 addrh indirekter index 117 4 755 9Be7 B6 7c stx fac-arg ungepackt: mantisse 4 756 9Be3 B4 7d sty arglo fac-arg ungepackt: mantisse 4151 9Be5 a4 24 ldy index 7 2 bank ind1rekter index 117 sty argsgn fac-arg ungepackt: vorzeichen 475B 9Be7 B4 7e 4 754 9Bdf a4 23 ldy index7+7 argmo 4159 9Be9 aa tax 4760 9Bea 3B sec 476 7 98eb e5 70 sbc dsctmp zeitweise descriptoren-ablage 4162 98ed fo OB beq stasgn 4763 9Bef a9 07 lda 11$0 7 4764 98f7 90 04 bcc stasgn 4165 98f3 a6 70 ldx dsctmp zeitweise descriptoren-ablage 476 7 98FT 85 76 stasgn sta facsgn fac 117: vorzeichen 4168 98f9 20 69 ba jsr mapdst umsch. auf bank (# in $731 4766 98f5 a9 ff lda #Sff 4169 98fc ao ff ldy ll$ff "70 98fe eb inx "7 7 98ff cb nxtcmp iny "72 9900 ca dex 4 173 9901 do 07 bne getcmp 4774 9903 a6 76 ldx facsgn fac 117: vorzeichen 4 I 75 9905 "76 9905 4177 9905 ===> bringt wahrheitswert nach fac <=== 4178 9905 "79 9905 30 15 qcomp bmi docmp 4180 9907 78 clc 4 78 7 9908 90 12 bcc docmp

610/710 basic-mathl hard+soft ass/reass..... seite 0088 zeile adr. obj. -code source-code 41B2 41B3 41B4 41B5 41B6 41B 7 41BB 41B9 4190 4191 4192 990a 990c 990f 9911 9914 9916 991B 991a 991c 991f 9920 bl 71 Bd 5b 02 b I 7c Cd 5b 02 fo e9 a2 ff bo 02 a2 01 20 Be ba eb Ba 4193 9921 2a 4194 9922 2d 59 02 4195 9925 fo 02 4196 9927 a9 ff getcmp lda tfacexpl,y sta ldaadr lda targmol,y cmp ldaadr beq nxtcmp ldx #$ff bcs docmp ldx #$01 docmp jsr mapusr inx txa rol a and tansgn beq goflot lda #$ff 4197 9929 4c 13 a2 goflot jmp float 4198 992c 4199 992c fac #1: exponent addrl modifiable adresse fac-arg ungepackt: mantisse addrl modifiable adresse umsch. auf bank # I flag für 'tan' vorzeichen status-byte in fac 4200 992c ===> variable suchen/anlegen, deren name folgt <=== 4201 992c 4202 992c a2 00 ptrget ldx #$00 4203 992e 20 29 ba jsr chrgot 4204 9931 86 10 ptrgtl stx dimflg 4205 9933 4206 9933 4207 9933 ===> sucht variable oder legt sie an <=== 420B 9933 4209 9933 B5 H ptrgt2 sta varnam 4210 9935 20 29 ba jsr chrgot 4211 4212 4213 42" 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 422 7 422B 4229 4230 4231 993B 993b 993d 9940 9940 9940 9942 99H 9946 9949 994b 994e 9950 9951 9954 9956 9959 995b 995d 995f 9961 20 bf 99 bo 03 4c H 97 a2 00 B6 II B6 12 20 26 ba 90 05 20 bf 99 90 Ob aa 20 26 ba 90 fb 20 bf 99 bo f6 c9 24 do 06 a9 ff B5 II 4232 9963 do 10 4233 9965 c9 25 4234 9967 do 13 jsr isletc bcs ptrgt3 interr jmp snerr ptrgt 3 ldx #$00 stx valtyp issec eatem stx intflg jsr chrget bcc issec jsr isletc bcc nosec tax jsr chrget bcc eatem jsr Lsletc bcs eatem nosec cmp #$24 bne notstr lda #$ff sta valtyp bne turnon notstr cmp #$25 bne strnam letztes zeichen erneut nach ac tindirekter sprungl dim-flag für zeigersuche auf variable erstes zeichen akt. variablenname letztes zeichen erneut nach ac tindirekter sprungl test 'ac'= buchstabe, ja carry=l ausgabe '?syntax error', ready flag für variablen typ to=num, l=stringl flag für integer-variable nächstes zeichen nach ac tind.jmpl test ac = buchstabe, ja carry= I nächstes zeichen nach ac tind.jmp) test 'ac'= buchstabe, ja carry=l flag für variablen typ to=num, l=stringl

610/710 basic-math1 hard+soft ass/reass.... seite 0089 zeile adr. obj.-code source-code 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 9969 996b 996d 996f 9971 9973 9975 9976 9978 9979 99 7c 99 7e 997f 9981 9983 9985 9988 9988 9988 9988 9988 998a 998c 998e 9990 9992 9994 9996 9998 999a a5 14 do do a9 80 85 12 05 H 85 H Ba 09 80 aa 20 26 ba 86 50 38 05 14 e9 28 do 03 4c 28 9b lda subflg bne interr lda #$80 sta intflg ora varnam sta varnam turnon txa ora #$80 tax jsr chrget strnam stx varnam+1 sec ora subflg sbc #$28 bne s trna 1 jmp isary flag für indizierte variable flag für integer-variable erstes zeichen akt. variablenname erstes zeichen akt. variablenname nächstes zeichen nach ac (ind.jmp} zweites zeichen akt. Variablenname flag für indizierte variable floating variable gefunden, namenzuwe~sung suchenleinrichten von feldern ===> floating variable gefunden. namenzuweisung <=== ao 00 84 14 a5 31 a6 32 86 6e 85 6d e4 36 do 04 c5 35 fo 2d 4265 999c 20 87 ba 4266 999f b1 6d 426 7 4268 4269 4270 4271 42 72 4273 99a 1 99a3 99a5 99a6 99a8 99aa 99ac c5 H do Od cb b1 6d c5 50 do 05 4c df 9a 4274 99af 4275 99af 4276 99af fo Be 4277 99b1 88 4278 4279 4280 4281 4282 4283 4284 99b2 20 Be ba 9 9b5 18 99b6 a5 6d 99b8 99ba 99bc 99bd 69 07 90 d6 e8 do d1 strnal ldy #$00 sty subflg lda vartab ldx vartab+1 stxfnd stx lowtr+1 lopfnd sta lowtr lopfn cpx arytab+1 bne lopfn cmp arytab beq notfns jsr mapvar lda (lowtrl.y cmp varnam bne notit iny lda llowtr},y cmp varnam+1 bne nxtptr jmp finptr gobadv beq interr nxtptr dey notit jsr mapusr clc lda lowtr adc #$07 bcc lopfnd inx bne stxfnd flag für indizierte variable addrl zeiger anfang einfache variable addrh zeiger anfang einfache variable addrh ursprunganfang (verschieben} temp.fac#2 addrl ursprunganfang (verschieben}/ temp. fac#2 addrh zeiger anfang array-tabelle addrl zeiger anfang array-tabelle umsch. auf bank # 2 addrl ursprunganfang (verschieben}/ temp. fac#2 erstes zeichen akt. variablenname addrl ursprunganfang (verschieben}/ temp.fac#2 zweites zeichen akt. variablenname zeiger auf gefundene variable umsch. auf bank # 1 addrl ursprunganfang (verschieben}/ temp. fac#2

610/710 basic-math1 hard+soft ass/reass... seite 0090 zeile adr. obj. -code source-code 4285 99bf 4286 99bf 4287 99bf ===> test ac = buchstabe, ja carry= 1 <=== 4288 99bf 4289 99bf c9 41 isletc cmp #$41 4290 99c 1 90 05 bcc islrts 4291 99c3 e9 5b sbc #$5b 4292 99c5 38 sec 4293 99c6 e9 a5 sbc #$a5 4294 99c8 60 islrts rts 4295 99c9 4296 99c9 4297 99c9 68 notfns pla 4298 99ca 48 pha 4299 99cb c9 56 cmp #$56 4300 99cd do Of bne notevl 4301 99cf ba tsx 4302 99d0 bd 02 01 lda stack+2,x 6509 cpu-stack 4303 99d3 c9 97 cmp #$97 4304 99d5 do 07 bne notevl 4305 99d7 a9 10 ldzr lda #$10 4306 99d9 ao a5 ldy #$a5 4307 99db a2 Of ldx #$0f 4308 99dd 60 rts 4309 99de 4310 99de Oll 99de a5 H notevl lda varnam erstes zeichen akt. variablenname 4312 99e0 a+ 50 ldy varnam I zweites zeichen akt. variablenname 4313 99e2 c9 54 cmp #$54 4314 99e4 do 04 bne qstavr 4315 99e6 co c9 cpy #$c9 4316 99e8 fo ed beq ldzr 4317 99ea c9 53 qstavr cmp #$53 4318 99ec do 04 bne qeravr 4319 99ee co 54 cpy #$54 020 99f0 fd bd beq gobadv 4321 99f2 c9 45 qeravr cmp #$45 4322 99(4 do 08 bne qdsvar 023 99f6 co 52 cpy #$52 024 99f8 fo b5 beq gobadv 025 99fa co 4c cpy #$4c 4326 99fc fo bl beq gobadv 027 99fe c9 qdsvar cmp #$44 4328 9aOO do 08 " bne varok 4329 9a02 CO 53 cpy #$53 4330 9a04 fd a9 beq gobadv 031 9a06 co d3 cpy #$d3 4332 9a08 fo a5 beq gobadv 4333 9a0a a5 35 varok lda arytab addrl zeiger anfang array-tabelle 4334 9a0c., 36 ldy arytab l addrh zeiger anfang array-tabelle 4335 9a0e 85 6d sta lowtr addrl ursprunganfang /verschieben}/ temp. fac#2 4336 9aiO 84 6e sty lowtr+l addrh ursprunganfang /verschieben} temp. fac#2 037 9a 12 a5 39 lda strend addrl ende benutzter ram-bereich 4338 9a 14., Ja ldy strend+1 addrh ende benutzter ram-bereich 4339 9a 16 85 67 sta hightr addrl ursprungende /versch~ebenll temp.fac#l

610/710 basic-math1 hard+soft ass/reass.... seite 0091 zeile adr. obj.-code source-code 4340 9a1B B4 6B 4347 9a7a 1B 4342 9a1b 69 07 4343 9a1d 90 01 4344 4345 046 047 434B 049 4350 4351 4352 4353 054 4355 4356 9a 1f 9a20 9a22 9a24 9a27 9a29 9a2b 9a2c 9a2e 9a30 9a32 9a34 9a36 057 435B 4359 4360 4367 9a3B 9a3a 9a3c 9a3e 9a40 4362 9a43 4363 9a43 4364 9a43 4365 9a45 4366 9a47 436 7 9a4a 436B 9a4c 4369 9a4e 4370 9aH 43 71 9a50 4372 9a52 4373 9a53 4374 9a54 4375 9a56 4376 9a5B cb B5 64 84 65 20 1e BB a5 64 a4 65 cb B5 35 B4 36 B5 64 B4 65 a5 64 a6 65 e4 Ja do 07 c5 39 do 03 4c co 9a B5 22 B6 23 20 B7 ba ao oo b 1 22 aa cb b 1 22 OB cb b 1 22 65 64 B5 64 4377 9a5a cb 437B 9a5b b1 22 4379 9a5d 65 65 43BO 9a5f B5 65 43B1 43B2 43B3 43B4 9a61 9a62 9a64 9a65 2B 10 do Ba 30 Cd sty hightr+1 clc adc #$07 bcc noteve iny noteve sta highds sty highds+7 jsr bltuv lda highds ldy highds+1 iny sta arytab sty arytab+1 sta highds sty highds+1 aryva2 lda highds ldx highds+7 aryva3 cpx strend+7 bne aryvgo cmp strend bne aryvgo jmp arydon aryvgo sta index1 stx index1+1 jsr mapvar ldy #$00 lda lindex1 I,y tax iny lda I index 1 I, y php ~ny lda (index1 I,y adc highds s ta highds iny lda I index 11, y adc highds 1 s ta highds + 1 plp bpl aryva2 txa bmi aryva2 addrh ursprungende (verschieben}/ temp.fac#1 addrl zielende (verschieben}/ temp.fac#1 addrh zielende (verschieben/ temp.fac#1 blockverschiebe-rout. für variable addrl zielende (verschieben}/ temp.fac#1 addrh zielende (verschieben/ temp.fac#1 addrl zeiger anfang array-tabelle addrh zeiger anfang array-tabelle addrl zielende (verschieben}/ temp.fac#1 addrh zielende (verschieben/ temp.fac#1 addrl zielende (verschieben}/ temp.fac#1 addrh zielende (verschieben/ temp.fac#1 addrh ende benutzter ram-bereich addrl ende benutzter ram-bereich addrl indirekter index #1 addrh indirekter index #1 umsch. auf bank # 2 addrl indirekter index #1 addrl indirekter index #1 addrl indirekter index #1 addrl zielende (verschieben}/ temp.fac#1 addrl zielende (verschieben}/ temp. fac#1 addrl indirekter index #1 addrh zielende (verschieben/ temp. fac#1 addrh zielende (verschieben/ temp. fac#1

610/710 basic-mathl hard+soft ass/reass.... seite 0092 zeile adr. obj.-code source-code 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 HOO HOl H02 H03 HU HOS H06 HOT HOB 4409 HIO 4411 4412 4413 4414 HIS 4416 4417 HIB 4419 9167 9&68 9a6a 9a6c 9a6d 9a6f 9a71 9a 13 9a 7S 9a 77 9a 79 9a7b 91 7d 9a7f 9a81 9a84 9a86 9aBB 9a8a 9a8d 9a8e 9a90 9191 9a 94 9a96 9a97 9a98 9a9a 9a9c 9a9e 9a9f 9aa I 9aa3 9aa4 9aa6 c8 b I 22 ao 00 Oa 69 OS 65 22 85 22 90 02 e6 23 a6 23 e4 6S do 04 es 64 fo b7 20 87 ba ao oo bl 22 fo 29 Bd Sb 02 c8 bl 22 18 6d 5b 02 85 67 aa c8 bl 22 69 00 85 68 c8 bl 22 85 01 18 ao oo bl 67 4420 9aa8 69 07 4421 9aaa 91 67 H22 9aac cb 4423 9aad bl 67 4424 9aaf 69 00 442S 9abl 91 67 iny lda I index I I. y ldy #$00 asl a adc #$05 adc indexl sta indexl bcc aryget inc indexl+l aryget ldx indexl+l cpx highds I gogo bne gogo cmp highds beq aryva3 jsr mapvar ldy #$00 lda lindex I J. y beq dvarts sta ldaadr iny lda I index 11. y clc adc ldaadr sta hightr tax iny lda lindexl},y adc #$00 sta hightr+l iny lda lindexl},y sta i6509 clc ldy #$00 lda {hightr},y adc #$0 7 sta lhightr},y iny lda I hightr J, y adc 11$00 sta lhightrj,y 4426 9ab3 a9 04 dvarts lda #$04 H27 9ab5 18 clc H28 9ab6 65 22 adc indexl 4429. 9ab8 85 22 sta indexl 4430 9aba 90 bb bcc aryget H31 9abc e6 23 inc index1+1 4432 9abe do b1 bne aryget 4433 9ac0 20 87 ba arydon jsr mapvar H34 9ac3 ao 00 ldy #$00 addrl indirekter index #I addrl indirekter index #I addrl indirekter index #I addrh indirekter index #I addrh indirekter index #I addrh zielende {verschieben/ temp. faclll addrl zielende {verschieben}/ temp. fac#l umsch. auf bank # 2 addrl indirekter index #I addrl modifiable adresse addrl indirekter index II addrl modifiable adresse addrl ursprungende {verschieben}/ temp. fac#l addrl indirekter index II addrh ursprungende lverschiebenl/ temp. fac#l addrl indirekter index 111 6509 indirection register addrl ursprungende lverschiebenj/ temp.fac#l addrl ursprungende tverschiebenl/ temp. facll addrl ursprungende lverschiebenji temp. fac#l addrl ursprungende lverschiebenl/ temp. fac#l addrl indirekter index #1 addrl indirekter index #1 addrh indirekter index 111 umsch. auf bank I 2

610/710 basic-mathl hard+soft ass/reass.... seite 0093 zeile adr. obj.-code source-code H35 9ac5 a5 H lda varnam erstes zeichen akt. Variablenname H36 9ac 7 91 6d sta I lowtr J, y addrl ursprunganfang!verschieben)/ temp. fac#z 4437 9ac9 c8 iny H38 9aca a5 50 lda varnam+ 1 zweites zeichen akt. Variablenname 4439 9acc 91 6d sta llowtr), y addrl ursprunganfang!verschieben)/ temp.fac#2 4440 9ace a9 00 lda #$00 H41 9ad0 c8 iny 4442 9ad I 91 6d sta llowtrj,y addrl ursprunganfang!verschieben)/ temp. fac#2 4443 9ad3 cb iny HH 9ad4 91 6d sta llowtr).y addrl ursprunganfang!verschieben)/ temp. fac#2 4445 9ad6 c8 iny 4H6 9ad7 91 6d sta I lowtr J. y addrl ursprunganfang I verschieben)/ temp.fac#2 4447 9ad9 c8 iny 4HB 9ada 91 6d sta llowtr),y addrl ursprunganfang!verschieben)/ temp. fac#z 4449 9adc c8 iny H50 9add 91 6d sta I lowtr J. y addrl ursprunganfang!verschieben)/ temp.fac#z 4451 9adf 4452 9adf H53 9adf ===> zeiger auf gefundene variable <=== 4454 9adf H55 9adf 20 Be ba finptr jsr mapusr ums eh. auf bank # I 4456 9ae2 a5 6d lda lowtr addrl ursprunganfang!verschieben)/ temp.fac#2 4457 9ae4 18 clc 4458 9ae5 69 02 adc #$02 4459 9ae 7 a4 6e ldy lowtr+l addrh ursprunganfang (verschieben) temp.fac#2 4460 9ae9 90 0 I bcc finnow 4461 9aeb cb iny 4462 9aec 85 51 finnow sta varpnt addrl zeiger auf variable im ram 4463 9aee 84 52 sty varpnt+l addrh zeiger auf variable im ram H64 9af0 a2 02 ldx #$02 4465 9a f2 86 53 stx varpnt +2 bank zeiger auf variable im ram H66 9a f4 60 rts 4467 9af5 4468 9af5.end 4469 9af5.lib math2

610/710 basic-math2 hard+soft ass/reass..... seite 0094 zeile adr. obj. -code source-code H71 9af5 4472 9af5 ===> setzt zeiger $64 auf l.feldvari <=== H 73 9af5 4474 9af5 a5 Oe fmaptr lda count allgemeiner zähler H 75 9af7 Oa asl a 4476 9af8 69 05 adc 1$05 4477 9afa 65 6d adc lowtr 4478 9afc a4 6e H 79 H80 H81 9afe 9b00 9b01 90 01 c8 85 64 4482 9b03 84 65 jsrgm ldy lowtr+l bcc jsrgm iny sta highds sty highds+l H83 9b05 60 rts H84 9b06 H85 9b06 4486 9b06 ===> umw. reallfac) in integer <=== H87 9b06 H88 9b06 20 26 ba intidx jsr chrget H89 9b09 20 c I 95 jsr frmevl H90 9b0c 20 04 b5 posint jsr chknum H91 9b0f a5 76 lda facsgn H92 9bll 30 Od bmi nonono addrl ursprunganfang {verschieben)/ temp.facl2 addrh ursprunganfang {verschieben) temp. facl2 addrl zielende {verschieben)/ temp. facll addrh zielende {verschieben/ temp. facll nächstes zeichen nach ac lind.jmp) auswertung beliebiger ausdruck prüfen, ob numerische variable fac II: vorzeichen H93 9bl3 H94 9bl3 4495 9bl3 ===> umwandlung real nach integer <=== H96 9bl3 H97 9bl3 a5 71 ayint lda facexp fac II: exponent H98 9bl5 c9 90 cmp 1$90 H99 9bl7 90 09 bcc qintgo 4500 9bl9 a9 Od lda l$0d 4501 9b1b ao a5 ldy 1$a5 4502 9bld 20 32 a2 jsr fcomp 4503 9b20 do 03 nonono bne fcerr8 4504 9b22 4c 80 a2 qintgo jmp qint 4505 9b25 4506 9b25 4507 9b25 4c a7 9b fcerr8 jmp fcerr 4508 9b28 4509 9b28 4510 9b28 ===> suchenleinrichten von feldern <=== 45 II 9b28 4512 9b28 a5 10 isary lda dimflg 4513 4514 4515 4516 4517 4518 9b2a 05 12 9b2c H 9b2d a5 11 9b2f 9b30 9b32 H a9 00 48 4519 9b33 a5 50 4520 9b35 H 4521 9b36 a5 4f ora intflg pha lda valtyp pha lda #$00 pha indlop lda varnam+l pha lda varnam vergleich fac II mit vari {ac/yr) umw. gk-zahl in integer ausgabe '?illegal quantity error ready dim-flag für zeigersuche auf variable flag fur integer-varlable flag für variablen typ IO=num, l=string) zweites ze~chen akt. variablenname erstes zeichen akt. variablenname

610/710 basic-math2 hard+soft ass/reass...... seite 0095 zeile adr. obj.-code source-code 4522 4523 9b38 9b39 48 20 06 9b pha jsr intidx umw. real(facl in integer 4524 9b3c 68 pla 4525 9b3d 85 4f sta varnam erstes zeichen akt. Variablenname 4526 9b3f 68 pla 4527 9b40 85 50 sta varnam+f zweites zeichen akt. variablenname 4528 9b42 68 pla 4529 9b43 ab tay 4530 9bH ba tsx 4531 9b45 bd 02 01 lda stack+2,x 6509 cpu-stack 4532 9b48 48 pha 4533 9b49 bd 01 0 I lda stack+ 1, x 6509 cpu-stack 4534 9b4c 48 pha 4535 9b4d a5 74 lda facmo fac #I: mantisse 4536 9bH 9d 02 0 I s ta stack+2,x 6509 cpu-stack 4537 9b52 a5 75 lda faclo fac #I: mantisse 4538 9b54 9d 01 01 sta stack+ I, x 6509 cpu-stack 4539 9b57 c8 iny 4540 9b58 98 tya 4541 9b59 48 pha 4542 9b5a 20 29 ba jsr chrgot letztes zeichen erneut nach ac (indirekter sprungl 4543 9b5d c9 2c cmp #$2c 45H 9b5f fo d2 beq indlop 4545 9b61 68 pla 4546 9b62 85 Oe sta count allgemeiner zähler 45H 9b64 20 2a 97 jsr chkcls tes t I, sonst Fehler + ready 4548 9b67 68 pla 4549 9b68 85 II sta valtyp flag für variablen typ IO=num, l=stringl 4550 9b6a 68 pla 4551 9b6b 85 12 sta intflg flag für integer-variable 4552 9b6d 29 7f and #$7f 4553 9b6f 85 10 sta dimflg dim-flag für zeigersuche auf variable 4554 9b 7 I a6 35 ldx arytab addrl zeiger anfang array-tabelle 4555 9b73 a5 36 lda arytab+l addrh zeiger anfang array-tabelle 4556 9b75 86 6d lopfda stx lowtr addrl ursprunganfang /verschieben}/ temp.fac#2 4557 9b77 85 6e sta lowtr+l addrh ursprunganfang /verschieben} temp.fac#2 4558 9b79 c5 Ja cmp strend+l addrh ende benutzter ram-bereich 4559 9b7b do 04 bne lopfdv 4560 9b7d e4 39 cpx strend addrl ende benutzter ram-bereich 456 I 9b7f fo H beq notfdd 4562 9b81 20 82 ba lopfdv jsr mapary umsch. auf bank # 2 4563 9b84 ao 00 ldy #$00 4564 9b86 bl 6d lda llowtrl,y addrl ursprunganfang (verschieben}/ temp.fac#2 4565 9b88 c8 iny 4566 9b89 c5 H cmp varnam erstes zeichen akt. variablenname 456 7 9b8b do 06 bne nmaryl 4568 9b8d bl 6d lda llowtrl,y addrl ursprunganfang (verschieben}/ temp.fac#2 4569 9b8f es 50 cmp varnam+t zweites zeichen akt. variablenname 4570 9b91 fo 19 beq gotary 457 I 9b93 c8 nmaryl iny 4572 9b94 bl 6d lda llowtrl,y addrl ursprunganfang I verschieben I/ temp. fac#2

610/710 basic-math2 hard+soft ass/reass... seite 0096 zeile adr. obj.-code source-code 4573 9b96 18 clc 4574 9b97 65 6d adc lowtr addrl ursprunganfang I verschieben I/ temp.facl2 4515 9b99 tax 4576 9b9a c8 iny 4577 9b9b b1 6d lda (lowtrl,y addrl ursprunganfang (verschieben!/ temp.factz 457B 9b9d 20 Be ba jsr mapusr ums eh. auf bank s I 4579 9ba0 65 6e adc lowtr+l addrh ursprunganfang (verschieben} temp. fac#2 45BO 9ba2 90 dl bcc lopfda 4581 9ba4 4582 9ba4 4583 9ba4 ===> ausgabe "?bad subscript error ready <=== 4584 9ba4 4585 9ba4 a2 38 bserr ldx #$38 4586 9ba6 2c.byte $2c 4587 9ba 7 4518 9ba 7 45B9 9ba7 ===> ausgabe "?illegal quantity error, ready <=== 4590 9ba 7 4591 9ba7 a2 30 fcerr ldx #$30 4592 9ba9 4c 52 85 errgo3 jmp error ind. jmp zur Fehlerroutine 4593 9bac 4594 9bac 4595 9bac 20 Be ba gotary jsr mapusr ums eh. auf bank # I 4596 9baf a2 3a ldx #$3a 4597 9bbl a5 10 lda dimflg dim-flag fur zeigersuche auf variable 4598 9bb3 do f4 bne errgo3 4599 9bb5 20 f5 9a jsr fmaptr setzt zeiger $64 auf 1. feldvari 4600 9bbB 20 B2 ba jsr mapary ums eh. auf bank I 2 4601 9bbb ao 04 ldy #$04 4602 9bbd bl 6d lda (lowtrl, y addrl ursprunganfang (verschieben}/ temp.fac#2 4603 9bbf c5 Oe cmp count allgemeiner zähler 4604 9bc1 do el bne bserr ausgabe "?bad subscript error ready 4605 9bc3 4c 58 9c jmp getdef suche nach richtigem matrixelement 4606 9bc6 4607 9bc6 4608 9bc6 10 07 sav44 bpl sav45 4609 9bc8 ca dex 4610 9bc9 a5 4f lda varnam erstes zeichen akt. variablenname 4611 9bcb 10 02 bpl sav45 4612 9bcd ca dex 4613 9bce ca dex 4614 9bcf 60 sav45 rts 4615 9bd0 4616 9bd0 4617 9bd0 20 f5 9a notfdd jsr fmaptr setzt zeiger $64 auf I. feldvari 4618 9bd3 20 77 B8 jsr reason test speicherplatz fur variable 4619 9bd6 20 82 ba jsr mapary ums eh. auf bank # 2 4620 9bd9 ao oo ldy #$00 4621 9bdb 84 83 sty fbufpt+l addrh zeiger fac-puffer lfout-rout. I 4622 9bdd a5 4f lda varnam erstes zeichen akt. variablenname 4623 9bdf 91 6d sta (lowtr},y addrl ursprunganfang (verschieben}/ temp. fac#2

670/770 basic-math2 hard+soft ass/reass.... seite 0097 zeile adr. obj.-code source-code 4624 9be7 cb iny 4625 9be2 a2 05 ldx 1$05 4626 9be4 a5 50 lda varnam+7 zweites zeichen akt. variablenname 4627 9be6 9 7 6d sta I lowtr J, y addrl ursprunganfang I verschieben)/ temp. facl2 462B 9beB 20 c6 9b jsr savh 4629 9beb B6 B2 stx fbufpt addrl zeiger fac-puffer lfout-rout.l 4630 9bed a5 Oe lda count allgemeiner zähler 4637 9bef cb iny 4632 9bf0 cb iny 4633 9bf7 cb iny 4634 9bf2 9 7 6d sta llowtrj,y addrl ursprunganfang (verschieben)/ temp. facl2 4635 9bH a2 Ob loppta ldx l$0b 4636 9bf6 a9 00 lda #$00 4637 9bfB 24 70 bit dimflg dim-flag für zeigersuche auf variable 463B 9bfa 50 OB bvc notdim 4639 9bfc 6B pla 4640 9bfd 7B clc 4647 9bfe 69 0 7 adc 1$07 4642 9cOO aa tax 460 9c07 6B pla 46H 9c02 69 00 adc 1$00 4645 9c04 cb notdim iny 4646 9c05 9 7 6d sta llowtr),y addrl ursprunganfang I verschieben)/ temp.facl2 4647 9c07 cb iny 4648 9cOB Ba txa 4649 9c09 9 7 6d sta I lowtr J, y addrl ursprunganfang (verschieben)/ temp.facl2 4650 9c0b 20 c4 9c jsr umult feldgrösse berechnen 465 7 9c0e B6 B2 stx fbufpt addrl zeiger fac-puffer lfout-rout. J 4652 9c70 B5 B3 sta fbufpt+7 addrh zeiger fac-puffer lfout-rout.) 4653 9c72 a4 22 ldy index7 addrl indirekter index #7 4654 9c 74 c6 Oe dec count allgemeiner zähler 4655 9c76 do dc bne loppta 4656 9c7B 65 65 adc highds + 7 addrh zielende!verschieben/ temp. facll 4657 9c7a bo 60 bcs omerr7 ausgabe '?out of memory error ready 465B 9c7c B5 65 sta highds+7 addrh zielende I verschieben/ temp.fac#l 4659 9c7e ab tay 4660 9c 7f Ba txa 466 7 9c20 65 64 adc highds addrl zielende (verschieben)/ temp.fac#7 4662 9c22 90 03 bcc grease 4663 9c24 cb iny 4664 9c25 fo 55 beq omerr7 ausgabe '?out of memory error ready 4665 9c27 20 Be ba grease jsr mapusr umsch. auf bank # 7 4666 9c2a 20 77 BB jsr reason test speicherplatz für variable 466 7 9c2d B5 39 sta strend addrl ende benutzter ram-bereich 4668 9c2f 84 Ja sty strend+1 addrh ende benutzter ram-bereich 4669 9c3 7 20 82 ba jsr mapary umsch. auf bank # 2 4670 9c34 a9 00 lda #$00 46 77 9c36 e6 83 inc fbufpt+7 addrh zeiger fac-puffer lfout-rout. J

610/710 basic-math2 hard+soft asslreass... seite 009B zeile adr. obj.-code source-code 4672 9c3B a4 B2 ldy fbufpt addrl zeiger fac-puffer (fout-rout.} 4673 9c3a fo 05 beq deccur 4614 9c3c BB zeri ta dey 4675 9c3d 91 64 sta (highds},y addrl zielende (verschieben!/ temp.facll 46 76 9c3f do fb bne zerita 4677 9c41 c6 65 deccur dec highds+ I addrh zielende (verschieben/ temp. facll 467B 9c0 c6 B3 dec fbufpt+l addrh zeiger fac-puffer ( fout-rout. I 4679 9cH do f5 bne zerita 46BO 9cH e6 65 inc highds+ I addrh zielende (verschieben/ temp. fac#l 46BI 9c49 3B sec 46B2 9c4a a5 39 lda strend addrl ende benutzter ram-bereich 46B3 9c4c e5 6d sbc lowtr addrl ursprunganfang (verschieben}/ temp. facl2 4684 9c4e ao 02 ldy 1$02 46B5 9c50 91 6d sta (lowtrl,y addrl ursprunganfang (verschieben!/ temp. facl2 46B6 9c52 a5 3a lda strend+l addrh ende benutzter ram-bereich 4687 9c54 cb iny 46BB 9c55 e5 6e sbc lowtr+l addrh ursprunganfang (verschieben} temp. facl2 46B9 9c57 91 6d sta (lowtr},y addrl ursprunganfang (verschieben}/ temp. facl2 4690 9c59 a5 10 lda dimflg dim-flag für zeigersuche auf variable 4691 9c5b do 64 bne dimrts 4692 9c5d cb iny 4693 9c5e 4694 9c5e 4695 9c5e ===> suche nach richtigem matrixelement <=== 4696 9c5e 4697 9c5e bl 6d getdef lda (lowtr}.y addrl ursprunganfang (verschieben!/ temp. facl2 4698 9c60 B5 Oe sta count allgemeiner zahler 4699 9c62 a9 00 lda 1$00 HOO 9c64 B5 B2 sta fbufpt addrl zeiger fac-puffer (fout-rout. I HOl 9c66 B5 B3 inlpnm sta fbufpt+ I addrh zeiger fac-puffer ( fout -raut. I 4702 9c6B cb iny H03 9c69 6B pla 4704 9c6a aa tax H05 9c6b B5 H sta facmo fac II: mantisse 4706 9c6d 6B pla H07 9c6e B5 75 sta faclo fac II: mantisse HOB 9c70 bl 6d lda (lowtrl,y addrl ursprunganfang (verschieben}/ temp.facl2 4709 9c72 c8 iny 4710 9c73 c5 75 cmp faclo fac II: mantisse 4711 9c75 fo OB beq inlpno 4712 9c77 bo Oe bcs inlpn I 4713 9c79 4c a4 9b bserr7 jmp bserr ausgabe "?bad subscript error ready 4714 9c7c 4115 9c7c 4716 9c7c 4c 50 85 omerr1 jmp omerr ausgabe "?out of memory error ready 4717 9c7f

610/710 basic-math2 hard+soft ass/reass... seite 0099 zeile adr. obj.-code source-code 4718 9c7f 4719 9c7f 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 47H 4745 4746 4747 4748 9c81 9c83 9c85 9c87 9c89 9c8b 9c8c 9c8e 9c91 9c92 9c94 9c95 9c96 9c98 9c9a 9c9c 9c9e 9ca0 9ca2 9ca4 9ca6 9ca9 9cab 9cad 9cbO 9cbl 9cb3 9cb5 9cb6 4749 9cbB 4750 9cba 4751 9cbb 4752 9cbd 4753 9cbf 4754 9cc I 4 755 9cc4 4756 9cc4 bl 6d c5 74 fo f4 90 f2 a5 83 05 B2 IB fo Oa 20 c4 9c Ba 65 74 aa 9B a4 22 65 75 B6 B2 c6 Oe do c6 B5 83 a2 05 a5 50 20 c6 9b B6 2a a9 00 20 cd 9c Ba 65 64 B5 51 9B 65 65 B5 52 ab a5 51 a2 02 B6 53 4c Be ba inlpno lda (lowtr),y cmp facmo beq bserr7 bcc bserr7 inlpnl lda fbufpt+l ora fbufpt clc beq addind jsr umult txa adc facmo tax tya ldy index I addind adc faclo s tx fbufpt dec count bne inlpnm sta fbufpt+ I ldx #$05 lda varnam+l jsr savh stx resmo lda #$00 jsr umultd txa adc highds sta varpnt tya adc highds+l sta varpnt+ I tay lda varpnt ldx #$02 stx varpnt+2 dimrts jmp mapusr 4757 9cc4 ===> feldgrösse berechnen <=== 4 758 9cc4 4759 9cc4 B4 22 4760 9cc6 bl 6d 4761 4762 4763 4764 4765 4766 9ccB 9cca 9ccb 9ccd 9ccf 9cdl B5 2a BB b I 6d B5 2b a9 10 B5 6b 4767 9cd3 a2 00 4768 9cd5 ao oo 4769 9cd7 Ba umult sty indexl lda (lowtr),y s ta resmo dey lda (lowtr),y umultd sta reslo lda #$10 sta lowds+1 ldx 11$00 ldy #$00 umultc txa addrl ursprunganfang (verschieben)/ temp. facll2 fac 111: mantisse addrh zeiger fac-puffer (fout-rout.) addrl zeiger fac-puffer (fout-rout.j feldgrösse berechnen fac #1: mantisse addrl indirekter index #1 fac 111: mantisse addrl zeiger fac-puffer (fout-rout. J allgemeiner zähler addrh zeiger fac-puffer (fout-rout. J zweites zeichen akt. variablenname Zwischenergebnis multipl./division addrl zielende (verschieben)/ temp. fac#l addrl zeiger auf variable im ram addrh zielende (verschieben/ temp.fac#1 addrh zeiger auf variable im ram addrl zeiger auf variable im ram bank zeiger auf variable im ram umsch. auf bank # 1 addrl indirekter index #1 addrl ursprunganfang (verschieben)/ temp.fac#2 Zwischenergebnis multipl.ldivision addrl ursprunganfang (verschieben)/ temp. fac#2 zwischenergebnis multipl./division addrh zielanfang (versch. )/ bytes vor dez.punkt

610/710 basic-math2 hard+soft ass/reass.... seite 0100 zeile adr. obj.-code source-code 4170 9cd8 oa asl a 4771 9cd9 aa tax 4772 9cda 98 tya 4773 9cdb 2a rol a 4774 9cdc ab tay 4775 9Cdd bo 9d bcs omerrl ausgabe?out of memory error ready 4776 9cdf 06 82 asl fbufpt addrl zeiger fac-puffer lfout-rout. I 4777 9ce7 26 B3 rol fbufpt+ 1 addrh zeiger fac-puffer lfout-rout.j 4118 9ce3 90 Ob bcc umlcnt 4179 9ce5 IB clc 4180 9ce6 Ba txa 4181 9ce7 65 2a adc resmo Zwischenergebnis multipl./division 4182 9ce9 aa tax 4183 9cea 9B tya 4184 9ceb 65 2b adc reslo zwischenergebnis multipl./division 4185 9ced a8 tay 4786 9cee bo Be bcs omerrl ausgabe "?out of memory error ready 4787 9cf0 es Sb umlcnt dec lowds+l addrh zielanfang lversch. II bytes vor dez.punkt 4188 9cf2 do e3 bne umultc 4189 9cf4 60 rts 4190 9cf5 4191 9cf5 4192 9cf5 ===> basic-routine fre <=== 4193 9cf!i 4794 9cf5 a5 11 fre lda valtyp flag für variablen typ IO=num. l=stringl 4195 9cf7 fo 08 beq frefio 4196 9cf9 20 e9 ab jsr frefac stringverwaltung, freier string 4797 9cfc a2 02 ldx #$02 419B 9cfe 4c 19 9d jmp frefst garbage, freien platz berechnen 4199 9d01 4800 9d01 4801 9d01 20 d9 b4 frefio jsr conint zahl < 256 aus akt. text nach xr 4802 9d04 eo 01 cpx #$01 4803 9d06 do Od bne frefbo 4804 9d08 38 sec 4805 9d09 a5 88 lda buffpt addrl zeiger auf eingabe-puffer 4806 9d0b es 2f sbc txtend addrl zeiger ende basic-text 4807 9d0d ab tay 4808 9d0e a5 89 lda buffpt+l addrh zeiger auf eingabe-puffer 4809 9d10 e5 30 sbc txtend+l addrh zeiger ende basic-text 4810 9dl2 4c 2c 9d jmp nos1ft 4811 9dl5 4812 9d75 4813 9dl5 eo 02 fref80 cpx #$02 4814 9dl 7 do 10 bne fref70 4815 9dl9 4816 9dl9 4817 9dl9 ===> garbage. freien platz berechnen <=== 4BI8 9d79 4819 9dl9 20 b5 ad frefst jsr garba2 garbage collect (müll entfernen} 4820 9d1c 38 sec 4821 9dld a5 3b lda fretop addrl top of string free space 4822 9dlf e5 39 sbc strend addrl ende benutzter ram-bereich 4823 9d21 ab tay

610/710 basic-math2 hard+soft ass/reass.... seite 0101 zeile adr. obj.-code source-code 4824 9d22 a5 3c lda fretop+l addrh top of string free space 4825 9d24 e5 3a sbc strend+l addrh ende benutzter raro-bereich 4826 9d26 4c 2c 9d jmp noslft 4827 9d29 4828 9d29 4829 9d29 a9 00 fref70 lda 11$00 4830 9d2b ab tay 4831 9d2c 20 3f 9d nos1ft jsr stoint umwandlung integer nach real 4832 9d2f 38 sec 4833 9d30 4c 20 a2 jmp floate ende umw. fliesskomma 4834 9d33 4835 9d33 4836 9d33 ===> basic-routine pos <=== 4837 9d33 4838 9d33 38 pos sec 4839 9d34 20 fo ff jsr kplot x,y-pos. des cursor lesen/schreiben 4840 9d37 a9 00 sngflt lda 11$00 4841 9d39 4842 9d39 4843 9d39 ===> umw. integer nach real <=== 4844 9d39 4845 9d39 20 3f 9d givayf jsr stoint umwandlung ~nteger nach real 4846 9d3c 4c lb a2 jmp floats 4847 9d3f 4848 9d3f 4849 9d3f ===> umwandlung integer nach real <=== 4850 9d3f 4851 9d3f a2 00 stoint ldx 11$00 4852 9d41 86 II stx valtyp flag für variablen typ IO=num, l=string) 4853 9d43 85 72 sta facho fac 111: mantisse 4854 9d45 84 73 sty facmoh fac 111: mantisse 4855 9d47 a2 90 ldx 11$90 4856 9d49 60 storts rts 4857 9d4a 4858 9d4a 4859 9d4a ===> test direkt, ausgabe '?illegal direct error ready <=== 4860 9d4a 4861 9d4a 20 57 9d errdir jsr ts tdir test direktmodus, hi-byt zeile=$ff 4862 9d4d do fa bne storts 4863 9d4f a2 3e ldx 11$3e 4864 9d51 2c.byte $2c 4865 9d52 4866 9d52 4867 9d52 ===> ausgabe '?undefined function error ready <=== 4868 9d52 4869 9d52 az 4a errguf ldx ll$4a 48 70 9d54 4c 52 85 jmp error ind. jmp zur Fehlerroutine 4871 9d57 4872 9d5 7 4873 9d57 ===> test direktmodus, hi-byt zeile=$ff <=== 48 74 9d57 4875 9d57 a5 43 tstdir lda curlin+l hi -byte akt. Zeilennummer 48 76 9d59 c9 ff cmp ll$ff 4877 9d5b 60 rts 48 78 9d5c 48 79 9d5c 4880 9d5c ===> fn variable suchen I anlegen <===

610/710 basic-math2 hard+soft ass/reass... seite 0102 zeile adr. obj.-code source-code 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 9d71 9d5c 9d5c a9 a5 9d5e 20 32 97 9d61 09 80 9d63 85 14 9d65 20 33 99 9d68 85 5b 9d6a 84 5c 9d6c 86 5d 9d6e 4c 04 b5 9d71 getfnm lda lt$a5 jsr synchr ora lt$80 sta subflg jsr ptrgt2 sta defpnt sty defpnt+l stx defpnt+2 jmp chknum 4893 9d71 ===> umwandlung 'fnx <=== 4894 9d71 4895 9d71 4896 9dl4 4897 9d76 4898 9d77 4899 9d79 4900 9d7a 4901 9d7c 4902 9d7d 4903 9d80 4904 9d83 4905 9d84 4906 9d86 4907 9d87 4908 9d89 4909 9d8a 4910 9d8c 49 II 9d8e 4912 9d90 4913 9d92 4914 9d94 4915 9d95 4916 9d96 4917 9d98 4918 9d9a 4919 9d9c 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 9d9e 9d9f 9da I 9da3 9da5 9da 7 9da8 9da9 9dab 9dad 9daf 9db2 9db4 9db5 9db7 9db8 9dba 20 5c 9d a5 5d 48 a5 5c 48 a5 5b 48 20 24 97 20 04 b5 68 85 5b 68 85 5c 68 85 5d 85 01 ao 02 b I 5b 85 51 aa c8 b I 5b 85 52 05 51 fo b4 c8 b I 5b 85 53 85 01 bl 51 48 88 10 fa a4 52 a5 53 20 a5 a I a5 86 48 a5 85 48 a5 5d 85 01 fndoer jsr getfnm lda defpnt+2 pha lda defpnt+l pha lda defpnt pha jsr parchk jsr chknum pla sta defpnt pla sta defpnt+l pla sta defpnt+2 sta i6509 ldy lt$02 lda ldefpntl,y s ta varpnt tax iny lda (defpntl,y sta varpnt+l ora varpnt beq errguf iny lda ldefpntl,y sta varpnt+2 sta i6509 fndo50 lda lvarpntl,y pha dey bpl fndo50 ldy va rpn t >I lda varpnt+2 jsr movumf lda txtptr+l pha lda txtptr pha lda defpnt+2 sta i6509 test:folgt ascii o. token im akt. text, sonst error flag für indizierte variable sucht variable oder legt sie an addrl zeiger funkt.-def./ temp.faclt3 addrh zeiger funkt.-def./ temp.fac#3 bank zeiger funkt.-def./ temp.fac#3 prüfen, ob numerische variable 'fn' variable suchen I anlegen bank zeiger funkt.-def./ temp.fac#3 addrh zeiger funkt.-def./ temp.faclt3 addrl zeiger funkt.-def./ temp.fac#3 test I' 'I', sonst fehler, ready prüfen, ob numerische variable addrl zeiger funkt.-def./ temp.fac#3 addrh zeiger funkt.-def./ temp.fac#3 bank zeiger funkt.-def./ temp.fac#3 6509 indirection register addrl zeiger funkt.-def./ temp.fac#3 addrl zeiger auf variable im ram addrl zeiger funkt.-def./ temp.fac#3 addrh zeiger auf variable im ram addrl zeiger auf variable im ram ausgabe '?undefined function error', ready addrl zeiger funkt.-def./ temp.fac#3 bank zeiger auf variable im ram 6509 indirection register addrl zeiger auf variable im ram addrh zeiger auf variable im ram bank zeiger auf variable im ram fac #I runden,nach xr, yr addrh zeigerauf akt. term addrl zeiger auf akt. term bank zeiger funkt.-def./ temp.fac#3 6509 indirection register

670/770 basic-mathz hard+soft asslreass... seite 0103 zeile adr. obj.-code source-code 4937 493B 4939 4940 4941 4942 4943 4944 4945 4946 4947 494B 4949 4950 4951 4952 4953 4954 4955 4956 9dbc 9dbe 9dc0 9dc1 9dc3 9dc5 9dcB 9dca 9dcb 9dcd 9dce 9dd0 9dd1 9dd4 9dd5 9dd7 9ddB 9dda 9ddb 9ddd 4957 495B 9de0 9de2 4959 9de5 4960 9de5 bl Sb BS BS cb bl Sb B5 B6 20 Be ba a5 53 4B as 52 4B a5 57 4B 20 01 b5 6B B5 Sb 6B BS 5c 6B B5 5d 20 29 ba fo 03 4c H 97 lda ldefpntl,y sta txtptr iny lda (defpntl,y sta txtptr l jsr mapusr lda varpnt+z pha lda varpnt+l pha lda varpnt pha jsr frmnum pla sta defpnt pla sta defpnt+l pla sta defpnt+z jsr chrgot beq deffi jmp snerr 4961 9de5 ===> prg./funkt.-zeiger vom stack holen <=== 4962 9de5 4963 9de5 6B 4964 9de6 B5 B5 4965 9deB 6B 4966 9de9 B5 B6 496 7 9deb 496B 9deb deffi pla sta txtptr pla sta txtptr+l 4969 9deb ===> Funktionen-zeiger vom stack holen <=== 4970 9deb 4971 9deb 4 9 72 9ded 4973 9def 4974 9df1 4 975 9df2 4 9 76 9df4 4977 9df5 497B 9df6 4979 9dfB 49BO 9df9 49B7 9dfa 49B2 9dfc 49B3 9dfd 49B4 9dfe 49BS 9e00 49B6 9e0 7 49B7 9e02 49BB 9e04 49B9 9e07 4990 9e07 4991 9e07 4992 9e0 7 4993 9e07 as 5d BS 01 ao 00 6B 91 Sb 6B cb 91 Sb 6B cb 91 5b 6B cb 97 Sb 6B cb 91 Sb 4c Be ba deffin lda defpnt+z sta i6509 ldy #$00 pla sta (defpntj,y pla iny sta (defpntl,y pla iny sta (defpntj,y pla iny sta (defpnt},y pla iny sta (defpnt I. y jmp mapusr ===> basic-routine "peek" <=== as lc peek lda linnum+l addrl zeiger funkt.-def./ temp.facl3 addrl zeiger auf akt. term addrl zeiger funkt.-def./ temp.facl3 addrh zeiger auf akt. term umsch. auf bank I 1 bank zeiger auf variable im ram addrh zeiger auf variable im ram addrl zeiger auf variable im ram numerischen ausdruck holen addrl zeiger funkt.-def./ temp.facl3 addrh zeiger funkt.-def./ temp.facl3 bank zeiger funkt.-def./ temp.facl3 letztes zeichen erneut nach ac (indirekter sprung} prg./funkt. -zeiger vomstackholen ausgabe "?syntax error, ready addrl zeiger auf akt. term addrh zeiger auf akt. term bank zeiger funkt.-def./ temp.facl3 6509 indirection register addrl zeiger funkt.-def./ temp.fac#3 addrl zeiger funkt.-def./ temp.facl3 addrl zeiger funkt.-def./ temp.fac#3 addrl zeiger funkt.-def./ temp.facl3 addrl zeiger funkt.-def./ temp.fac#3 umsch. auf bank # 7 hi-byte akt. zeilennummer

610/710 basic-math2 hard+soft ass/reass.... seite 0104 zeile adr. obj.-code source-code 4994 9e09 U 4995 9e0a a5 lb 4996 9e0c 48 4997 9e0d 20 eb b4 4998 9el0 4999 9el2 5000 9el5 5001 9el7 5002 9el9 5003 9elb 5004 9elc 5005 9eld 5006 9elf 5007 9e20 5008 9e22 5009 9e24 5010 9e27 5011 9e27 a6 01 ad 57 02 85 01 ao oo bl lb ab 68 85 lb 68 85 lc 86 01 4 c 3 7 9d pha lda linnum pha jsr getadr ldx i6509 lda dfbank sta i6509 ldy 1$00 lda I linnum I, y tay pla sta linnum pla sta linnum+l stx i6509 jmp sngfl t lo-byte akt. Zeilennummer gk-zahl in fac als adresse nach $11.$12 6509 indirection register vorgabe für bank-nummer 6509 indirection register lo-byte akt. Zeilennummer lo-byte akt. Zeilennummer hi-byte akt. Zeilennummer 6509 indirection register 5012 9e27 ===> fac II + 0.5 <=== 5013 9e21 5014 9e27 a9 Oe faddh lda l$0e 5015 9e29 ao a5 ldy l$a5 5016 9e2b do ld bne fadd konstante in arg, fac arg+fac 5017 9e2d 5018 9e2d 5019 9e2d ===> konstante in arg, fac = arg-fac <=== 5020 9e2d 5021 9e2d 20 5c ao fsub jsr conupk holt arg lo=ac, hi=yr in fac 12 5022 9e30 5023 9e30 5024 9e30 ===> basic-routine - (dez. subtr. I <=== 5025 9e30 5026 5021 5028 9e30 9e33 9e35 20 7e a 5 45 7e 85 7f fsubt jsr sav41 eor argsgn sta arisgn 5029 5030 9e37 9e39 5031 9e3c 5032 9e3c 5033 9e3c 5034 9e3e 5035 9e40 5036 9e42 5037 9e43 5038 9eH 5039 9e45 5040 9e45 a5 71 4c 4d 9e a4 89 a6 88 do 01 88 ca 60 lda facexp jmp faddt sav75 ldy buffpt+l ldx buffpt bne sav76 dey sav76 dex zerrts rts 'facsgn' invertieren fac-arg ungepackt: vorzeichen fac-arg ungepackt: Vorzeichenduplikat fac #1: exponent basic-routine + (dez. add. I addrh zeiger auf eingabe-puffer addrl zeiger auf eingabe-puffer 5041 9e45 ===> exp. gleichsetzen, konstante holen, fac = arg+fac <=== 5042 9e45 5043 9e45 20 79 9f fadd5 jsr shi ftr schiebt fac rechts bis exp. 50H 9e48 90 3c bcc fadd4 5045 5046 9e4a 9e4a 5047 9e4a ===> konstante in arg, fac = arg+fac <=== 5048 9e4a 5049 9e4a 20 5c ao fadd jsr conupk holt arg lo=ac, hi=yr ~n fac #2 0

610/710 basic-mathz hard+soft ass/reass.... seite 0105 zeile adr. obj.-code source-code 5050 9e4d 5051 9e4d 5052 5053 9e4d 9e4d ===> basic-routine (dez. add.l <=== 5054 9e4d do 03 faddt bne faddb 5055 9eH 4c d3 al jmp movfa 5056 9e52 copy arg nach fac " yr 5057 9e52 5058 9e52 a6 80 faddb ldx facov fac overflow-byte 5059 9e54 86 63 stx jmper+2 addrh sprung zu functions-rout. 5060 9e56 az 79 ldx 1$79 5061 9e58 a5 79 lda argexp fac-arg ungepackt: exponent 5062 9e5a ab faddc tay 5063 9e5b fo e7 beq zerrts 5064 9e5d 38 sec 5065 9e5e e5 71 sbc facexp fac II: exponent 5066 9e60 fo 24 beq fadd4 5067 9e62 90 12 bcc fadda 5068 9e64 84 71 sty facexp fac #1: exponent 5069 9e66 a4 Te ldy argsgn fac-arg ungepackt: vorzeichen 5070 9e6B 84 76 sty facsgn fac #1: vorzeichen 5071 9e6a 49 ff eor l$ff 5072 9e6c 69 00 adc 1$00 5073 9e6e ao 00 ldy 1$00 5014 9e70 84 63 sty jmper+2 addrh sprung zu functions-rout. 5075 9e12 a2 71 ldx 1$71 5076 9e74 do 04 bne faddl 5077 9e76 ao 00 fadda ldy tf$00 5078 9e78 84 80 sty facov fac overflow-byte 5079 9e7a c9 (9 faddl cmp 1$f9 5080 9e7c 30 c7 bmi fadd5 exp. gleichsetzen, konstante holen, fac = arg+fac 5081 9e7e ab tay 5082 9e7f a5 80 lda facov fac overflow-byte 5083 9eB 1 56 0 I lsr i6509,x 6509 indirection register 5084 9e83 20 90 9f jsr rolshf schiebt fac bitweise nach rechts 5085 9e86 24 7f fadd4 bit arisgn fac-arg ungepackt: Vorzeichenduplikat 5086 9eBB 10 57 bpl fadd2 mantissen-add. bei gleichen vorz. 5087 9e8a ao 71 ldy #$71 5088 9eBc eo 79 cpx 1$19 5089 9eBe fo 02 beq subit 5090 9e90 ao 79 ldy 1$19 5091 9e92 38 subit sec 5092 9e93 49 ff eor l$ff 5093 9e95 65 63 adc jmper+2 addrh sprung zu functions-rout. 5094 9e97 85 80 sta facov fac overflow-byte 5095 9e99 b9 04 00 lda usrpok+2,y addrh der 'usr'-routine 5096 9e9c f5 04 sbc usrpok 2,x addrh der usr -routine 5097 9e9e 85 75 sta faclo fac 11: mantisse 5098 9ea0 b9 03 00 lda usrpok+l, y addrl der usr' -routine 5099 9ea3 f5 03 sbc usrpok+ 1, x addrl der "usr'-routine 5100 9ea5 85 74 sta facmo fac II: mantisse 5101 9ea7 b9 02 00 lda usrpok,y jmp code fur user-routine 5102 9eaa f5 02 sbc usrpok,x jmp code für user-rout1ne 5103 9eac 85 73 sta facmoh fac 11: mantisse 5104 9eae b9 01 00 lda i6509,y 6509 indirection register 5105 9ebl f5 0 I sbc i6509,x 6509 indirection register

610/710 basic-math2 hard+soft ass/reass.... seite 0!06 zeile adr. obj.-code source-code 5106 9eb3 85 72 sta facho fac #!: mantisse 5107 9eb5 5108 9eb5 5109 9eb5 ===> macht fac linksbündig <=== 5110 9eb5 5111 9eb5 bo 03 fadflt bcs normal fac linksbündig machen 5112 9eb7 20 2a 9f jsr negfac mantisse von fac invertieren 5113 9eba 5114 9eba 5115 9eba 5116 9eba ===> fac linksbündig machen <=== 5117 9eba ao 00 normal ldy #$00 5118 9ebc 98 tya 5119 9ebd 18 clc 5120 9ebe a6 72 norm3 ldx facho fac #I: mantisse 5121 9eco do 4a bne norml 5122 9ec2 a6 73 ldx facmoh fac #I: mantisse 5123 9ec4 86 72 stx facho fac #I: mantisse 5124 9ec6 a6 H ldx facmo fac #I: mantisse 5125 9ec8 86 73 stx facmoh fac #I: mantisse 5126 9eca a6 75 ldx faclo fac #!: mantisse 5127 9ecc 86 H stx facmo fac #!: mantisse 5128 9ece a6 80 ldx facov fac overflow-byte 5129 9ed0 86 75 stx faclo fac #!: mantisse 5130 9ed2 84 80 sty facov fac overflow-byte 5131 9ed4 69 OB adc #$08 5132 9ed6 c9 20 cmp #$20 5133 9ed8 do e4 bne norm3 5134 Seda 5135 9eda 5136 Seda 5137 Seda ===> fac auf 00 setzen <=== 5138 9eda a9 00 zerofc lda #$00 5139 9edc 85 71 zerofl sta facexp fac #1: exponent 5140 Sede 85 76 zeroml sta facsgn fac #I: vorzeichen 5H1 SeeO 60 rts 5142 9eel 5143 See I 51H 9eel ===> mantissen-add. bei gleichen vorz. <=== 5145 9eel 5146 See I 65 63 fadd2 adc jmper+2 addrh sprung zu functions-rout. 5147 9ee3 85 80 sta facov fac overflow-byte 5148 9ee5 a5 75 lda faclo fac #I: mantisse 5149 See 7 65 1d adc arglo fac-arg ungepackt: mantisse 5150 9ee9 85 75 sta faclo fac #1: mantisse 5151 9eeb a5 74 lda facmo fac II: mantisse 5152 Seed 65 7c adc argmo fac-arg ungepackt: mantisse 5153 Seef 85 74 sta facmo fac #1: mantisse 5154 9efl a5 73 lda facmoh fac II: mantisse 5155 Sef3 65 7b adc argmoh fac-arg ungepackt: mantisse 5156 9ef5 85 73 sta facmoh fac #1: mantisse 5157 9ef7 a5 72 lda facho fac.,, mantisse 5158 Sef9 65 7a adc argho fac-arg ungepackt: mantisse 5159 9efb 85 72 sta facho fac #I: mantisse 5160 9efd 4c 19 9f jmp squeez wenn nötig, Überlaufstelle einsch. 5161 9f00 5162 9f00 5163 9f00 69 01 norm2 adc #$0 1

610/710 basic-math2 hard+soft ass/reass.... seite 0107 zeile adr. obj.-code source-code 5164 9f02 5165 9f04 5166 9f06 5161 9f08 5168 9f0a 5169 9f0c 5110 9f0e 5111 9f0f 5112 9f11 5113 9f13 5114 9f15 5175 9f11 5116 9f19 5117 9f19 06 80 26 75 26 H 26 13 26 72 10 f2 38 e5 71 bo c7 49ff 69 01 85 11 norm1 asl facov rol faclo rol facmo rol facmoh rol facho bpl norm2 sec sbc facexp bcs zerofc eor l$ff adc #$0 1 sta facexp fac overflow-byte fac 11: mantisse fac #1: mantisse fac 11: mantisse fac #1: mantisse fac 11: exponent fac auf 00 setzen fac 11: exponent 5118 9f19 ===> wenn nötig, Überlaufstelle einsch. <=== 5119 9f19 5180 9f19 5181 9f1b 5182 9f1d 5183 9f1f 5184 9f21 5185 9f23 5186 9f25 5181 9f21 5188 9f29 5189 9f2a 5190 9f2a 90 Oe e6 71 fo 3f 66 12 66 73 66 H 66 75 66 80 60 squeez bcc rndrts rndshf inc facexp beq overr ror facho ror facmoh ror facmo ror faclo ror facov rndrts rts 5191 9f2a ===> mantisse von fac invertieren <=== 5192 9f2a 5193 9f2a 20 7e a5 negfac jsr sav41 5194 9f2d 5195 9f2d 5196 9f2d ===> mantisse von fac invertieren <=== 5191 9f2d 5198 9f2d 5199 9f2f 5200 9f31 5201 9f33 5202 9f35 5203 9f3 7 5204 9f39 5205 9f3b 5206 9f3d 5201 9f3f 5208 9f41 5209 9H3 5210 9f45 5211 9H 7 5212 9f49 5213 9Hb 5214 9Hd 5215 9fH 5216 9f51 5217 9f53 5218 9f55 5219 9f57 5220 9f59 5221 9f5b a5 72 49 ff 85 72 a5 73 49 ff 85 13 a5 H 49 ff 85 H a5 75 49ff 85 75 a5 80 49 ff 85 80 e6 80 do Oe e6 75 do Oa e6 H do 06 e6 73 do 02 e6 72 negfch lda facho eor l$ff sta facho lda facmoh eor #$ff s ta facmoh lda facmo eor l$ff sta facmo lda faclo eor #$ff s ta faclo lda facov eor 1$ff sta facov inc facov bne incfrt incfac inc faclo bne incfrt inc facmo bne incfrt inc facmoh bne incfrt inc facho fac 11: exponent ausgabe '?overflow error', ready fac 11: mantisse fac 11: mantisse fac 11: mantisse fac #1: mantisse fac overflow-byte 'facsgn' invertieren fac #1: mantisse fac #1: mantisse fac 11: mantisse fac #1: mantisse fac #1: mantisse fac #1: mantisse fac 11: mantisse fac #1: mantisse fac overflow-byte fac overflow-byte fac overflow-byte fac #1: mantisse fac 11: mantisse fac #1: mantisse fac #1: mantisse

610/710 basic-math2 hard+soft ass/reass...... seite 010B zeile adr. obj.-code source-code 5222 9f5d 60 incfrt rts 5223 9f5e 5224 9f5e 5225 9f5e ===> ausgabe?overflow error ready <=== 5226 9f5e 5227 9f5e a2 32 overr ldx #$32 522B 9f60 4c 52 B5 jmp error ind. jmp zur fehlerroutine 5229 9f63 5230 9f63 5231 9f63 ===> register rechts schieben <=== 5232 9f63 5233 9f63 a2 27 mulshf ldx #$27 5234 9f65 b4 04 shftr2 ldy usrpok+z,x addrh der usr -routine 5235 9f67 B4 BO sty facov fac overflow-byte 5236 9f69 b4 03 ldy usrpok+1,x addrl der usr -routine 5237 9f6b 94 04 sty usrpok+2,x addrh der usr -routine 523B 9f6d b4 02 ldy usrpok,x jmp code für user-routine 5239 9f6f 94 03 sty usrpok+ 1, x addrl der usr -routine 5240 9fl1 b4 01 ldy i6509,x 6509 indirection register 5241 9f73 94 02 sty usrpok,x jmp code für user-routine 5242 9f75 a4 7B ldy bits shift-zähler 520 9f77 94 01 sty i6509,x 6509 indirection register 52H 9f79 5245 9f79 5246 9f79 ===> schiebt fac rechts bis exp. 0 <=== 52H 9f79 5248 9f79 69 08 shi ftr adc #$OB 5249 9f7b 30 eb bmi shftr2 5250 9f7d fo e6 beq shftr2 5251 9f7f e9 OB sbc #$08 5252 9fB1 ab tay 5253 9fB2 a5 BO lda facov fac overflow-byte 5254 9f84 bo bcs shftrt 5255 9fB6 16 01 shftr3 asl i6509,x 6509 indirection register " 5256 9fB8 90 02 bcc shftr4 5257 9fBa f6 01 inc i6509,x 6509 indirection register 5258 9f8c 76 01 shftr4 ror i6509,x 6509 indirection register 5259 9f8e 76 01 ror i6509,x 6509 indirection register 5260 9f90 5261 9f90 5262 9f90 ===> schiebt fac bitweise nach rechts <=== 5263 9f90 5264 9f90 76 02 rolshf ror usrpok,x jmp code für user-routine 5265 9f92 76 03 ror usrpok+ 1, x addrl der usr -routine 5266 9f94 76 04 ror usrpok+2,x addrh der usr -routine 526 7 9f96 6a ror a 5268 9f97 cb iny 5269 9f98 do ec bne shftr3 5270 9f9a 18 shftrt clc 52 71 9f9b 60 rts 5272 9f9c 9f9c 9f9c e~ns 5273 5274 ===> konstante <=== 5275 9f9c 5276 9f9c 8 I fone.byte $81, soo. $00, $00. $00 5276 9f9d 00 5276 9f9e 00 5276 9f9f 00

610/710 basic-math2 hard+soft ass/reass.... seite 0109 zeile adr. obj.-code source-code 5276 9fa0 00 5277 9fa I 5278 9fa I 5279 9fa I ===> konstanten für funktion 'log (polynomgrad 31 <=== 5280 9fa I 5281 9fa I 03 logcn2.byte $03 5282 9fa2 7f.byte $7f' $5e, $56, $cb, $79 konstante 0.434255942 für 'log 5282 9fa3 5e 5282 9fa4 56 5282 9fa5 cb 5282 9fa6 79 5283 9fa 7 80.byte $80, $13, $9b, $Ob, $64 konstante 0.576584541 für 'log 5283 9fa8 13 5283 9fa9 9b 5283 9faa Ob 5283 9fab 64 5284 9fac 80. byte $80, $76, $38, $93, $16 konstante 0.961800759 für 'log 5284 9fad 76 5284 9fae 38 5284 9faf 93 5284 9fb0 16 5285 9fbl 82.byte $82, $38, $aa, $3b, $20 konstante 2.885390007 für 'log 5285 9fb2 38 5285 9fb3 aa 5285 9fb4 3b 5285 9fb5 20 5286 9fb6 5287 9fb6 5288 9fb6 ===> 0. 707106781 = 1/2 sqr 2 <=== 5289 9fb6 5290 9fb6 80 sqr05.byte $80, $35, $04, $f3, $34 5290 9fb7 35 5290 9fb8 04 5290 9fb9 f3 5290 9fba 34 5291 9fbb 5292 9fbb 5293 9fbb ===> 1.41421356 = sqr 2 <=== 5294 9fbb 5295 9fbb 81 sqr20.byte $81' $35, $04, $f3, $34 5295 9fbc 35 5295 9fbd 04 5295 9fbe f3 5295 9fbf 34 5296 9fc0 5297 9fc0 5298 9fc0 ===> -0.5 <=== 5299 9fc0 5300 9fc0 80 neghlf.byte $80, $80, $00, $00, $00 5300 9fcl 80 5300 9fc2 00 5300 9fc3 00 5300 9fc4 00 5301 9fc5

610/710 basic-math2 hard+soft ass/reass... seite 0110 zeile adr. obj.-code source-code 5302 9fc5 5303 9fc5 ===> 0.693147181 = logl21 <=== 530, 9fc5 5305 9fc5 80 log2. byte $80, $3 I' $72, s I 7' $f8 5305 9fc6 3 I 5305 9fc7 72 5305 9fc8 I 7 5305 9fc9 f8 5306 9fca 5307 9fca.end 5308 9fca.lib math3

610/710 basic-math3 hard+soft ass/reass.... seite 0111 zeile adr. obj.-code source-code 5310 53 II 5312 9fca 5313 9fca 53" 9fcd 5315 9fcf 5316 9fdl 9fca 9fca ===> basic-routine 'log' <=== 20 02 a2 fo 02 10 03 4c a7 9b log jsr sign beq logerr bpl log I logerr jmp fcerr vorzeichentest fac #I ausgabe '?illegal quantity error ready 5311 9fd4 5318 5319 5320 5321 5322 5323 5324 5325 9fd4 9fd4 9fd6 9fd8 9fd9 9fdb 9fdd 9fdf a5 71 e9 7f 48 a9 80 85 71 a9 b6 ao 9f log I lda facexp sbc 1$ 7f pha lda 1$80 sta facexp lda #$b6 ldy 1$9f fac #1: exponent fac #1: exponent 5326 5327 5328 9fe I 9fe4 9fe6 20 4a 9e a9 bb ao 9f jsr fadd lda 1$bb ldy l$9f konstante in arg. fac arg+fac 5329 5330 5331 9fe8 9feb 9fed 20 e6 ao a9 9c ao 9f jsr fdi v lda l$9c ldy l$9f holt wert in arg, fac arg I fac 5332 5333 5334 5335 5336 9fef 9ff2 9ff4 9ff6 9ff9 20 2d 9e a9 a I ao 9f 20 05 a6 a9 co jsr fsub lda l$a I ldy l$9f jsr polyx lda #$c0 konstante in arg, fac polynom-auswertung arg-fac 5337 5338 9ffb 9ffd ao 9f 20 4 a 9e ldy 1$9f jsr fadd konstante in arg, fac = arg+fac 5339 aooo 68 pla 5340 aooi 20 63 a3 jsr finlog liest ascii (0.. 9) aus basic 5341 a004 a9 c5 lda #$c5 5342 a006 ao 9f ldy #$9f 5343 53H a008 a008 5345 a008 ===> holt wert in arg fac = arg fac <=== 5346 a008 5341 a008 20 5c ao fmult jsr conupk holt arg lo=ac, hi=yr in fac #2 5348 aoob 5349 aoob 5350 aoob ===> basic-routine ' (dez. multipl. J <=== 535 I aoob 5352 5353 5354 5355 5356 5357 5358 5359 5360 536 I 5362 5363 5364 5365 5366 aoob aood aoio a012 ao 14 a016 aoib aoia adle ao lf a021 a024 a026 a029 a02b fo 4e 20 Be ao a9 00 85 28 85 29 85 2a 85 2b a5 80 20 36 ao a5 75 20 36 ao a5 74 20 36 ao a5 13 20 36 ao fmultt beq multrt jsr muldiv lda #$00 sta resho sta resmoh sta resmo sta reslo lda facov jsr mltply lda faclo jsr mltply lda facmo jsr mltply lda facmoh jsr mltply korrektur von fac u. arg Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division fac overflow-byte multiplikation I bit fac II: mantisse multiplikation I bit fac #1: mantisse multiplikation I bit fac "1: mantisse multipl~kation I bit

610/710 basic-math3 hard+soft ass/reass.... seite 0112 zeile adr. obj.-code source-code 5367 a02e 5368 a030 5369 a033 5370 a036 5371 a036 a5 72 20 3b ao 4c 5a a 7 lda facho jsr mltpl 7 jmp movfr 5372 a036 ===> multiplikation 7 bit <=== 5373 a036 5374 a036 do 03 mltply bne mltpll 5375 a038 4c 63 9f jmp mulshf 5376 a03b 53 77 a03b 5378 a03b 5379 a03c 5380 a03e 538 7 a03f 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 a041 aoh aoh aoh a048 a04a a04b a04d aoh a051 a053 a055 a057 4a 09 80 ab 90 Oe 18 a2 03 b5 28 75 7a 95 28 ca 10 f7 66 28 66 29 66 2a 66 2b 66 80 98 5395 a058 4a 5396 a059 do e3 539 7 a05b 60 5398 a05c 5399 a05c mltpll lsr a ora 1$80 mltpl2 tay bcc mltpl3 clc ldx 1$03 mltpl4 lda resho,x adc argho,x sta resho,x dex bpl mltph mltpl3 ror resho ror resmoh ror resmo ror reslo ror facov tya lsr a bne mltpl2 multrt rts 5400 a05c ===> holt arg lo=ac, hi=yr in fac #2 <=== 5401 a05c 5402 5403 5404 5405 5406 5401 5408 5409 5410 5471 5412 5413 54 74 5415 5416 5417 5418 5419 a05c a05e a060 a062 a064 a066 a068 a06a a06b a06d a06f a070 a072 ao 74 a075 a077 a079 aolb a2 Of 86 01 85 22 84 23 ao 04 b 7 22 85 7d 88 b 7 22 85 lc 88 b 7 22 85 7b 88 b 7 22 85 le 45 76 85 7f conupk ldx I$Of ucnupk stx i6509 sta indexl sty index1+1 ldy 1$04 lda lindexl},y s ta arglo dey lda lindex1j,y sta argmo dey lda lindexli,y sta argmoh dey lda I index 7 I. y sta argsgn eor facsgn sta arisgn 5420 542 7 5422 5423 aold aolf a08 7 a083 a5 le 09 80 85 la 88 lda argsgn ora #$80 sta argho dey fac 11: mantisse erg. nach fac, linksbündig machen register rechts schieben Zwischenergebnis multipl./division fac-arg ungepackt: mantisse Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl./division Zwischenergebnis multipl.ldivision fac overflow-byte 6509 indirection register addrl indirekter index #1 addrh indirekter index 11 addrl indirekter index 11 fac-arg ungepackt: mantisse addrl indirekter index #1 fac-arg ungepackt: mantisse addrl indirekter index 11 fac-arg ungepackt: mantisse addrl indirekter index #1 fac-arg ungepackt: Vorzeichen fac #1: vorzeichen fac-arg ungepackt: VOrzeichenduplikat fac-arg ungepackt: Vorzeichen fac-arg ungepackt: mantisse

610/710 basic-math3 hard+soft ass/reass.... seite 0113 zeile adr. obj.-code source-code 5424 a084 bl 22 lda lindexl I. y addrl indirekter index 5425 a086 20 Be ba jsr mapusr ums eh. auf bank # I 5426 a089 85 79 sta argexp fac-arg ungepackt: exponent 5427 aobb a5 7 I lda facexp fac #1: exponent 5428 a08d 60 rts 5429 aobe 5430 a08e 5431 aobe ===> korrekt ur von fac u. arg <=== 5432 aobe 5433 aobe a5 79 muldi v lda argexp fac-arg ungepackt: exponent 5434 a090 fo lf mldexp beq zeremv 5435 a092 18 clc 5436 a093 65 7 I adc facexp fac #1: exponent 5437 a095 90 04 bcc tryoff 5438 a097 30 ld bmi goover 5439 a099 18 clc 5HO a09a Zc.byte $2c 5HI a09b 10 14 tryoff bpl zeremv 5HZ a09d 69 80 adc #$80 5H3 a09f 85 7 I sta facexp fac #1: exponent 5H4 aoa I do 03 bne muld 5H5 a0a3 4c de 9e jmp zeroml 5H6 a0a6 5H7 a0a6 5H8 a0a6 a5 7f muld lda arisgn fac-arg ungepackt: vorzeichenduplikat 5H9 aoab 85 76 sta facsgn fac #1: vorzeichen 5450 aoaa 60 rts 5451 aoab 5452 aoab 5453 aoab a5 76 mldvex lda facsgn fac #1: vorze~chen 5454 aoad 49 ff eor #$ff 5455 aoaf 30 05 bmi goover 5456 aobl 68 zeremv pla 5457 a0b2 68 pla 5458 a0b3 4c da 9e jmp zerofc fac auf 00 setzen 5459 a0b6 5460 a0b6 5461 a0b6 4c 5e 9f goover jmp overr ausgabe?overflow error ready 5462 a0b9 5463 a0b9 5464 a0b9 ===> multiplikation fac #1 fac 10 <=== 5465 a0b9 5466 aob9 20 e3 a 1 mul10 jsr movaf copy fac #1 nach arg 5467 aobc aa tax 5468 aobd fo 10 beq mul10r 5469 aobf 18 clc 5470 aoco 69 02 adc #$02 5471 a0c2 bo f2 bcs goover 5472 aoc4 a2 00 ldx #$00 5473 a0c6 86 7f stx ar~sgn fac-arg ungepackt: Vorzeichenduplikat 5474 aocb 20 5a 9e jsr faddc 5475 aocb e6 71 ~nc facexp fac #1: exponent 5476 aocd fo el beq goover 54 77 aocf 60 mul10r rts 5478 aodo 5479 aodo "

6101710 basic-math3 hard+soft asslreass... seite 0114 zeile adr. obj.-code source-code 5480 aodo ===> gleitkommakonstante 10 <=== 5481 aodo 5482 aodo 84 tenc.byte $84, $20, $00, $00, $00 5482 aodl 20 5482 a0d2 00 5482 a0d3 oo 5482 a0d4 00 5483 a0d5 5484 a0d5 a0d5 ===> division fac II = fac I 10 <=== aod5 5487 a0d5 5488 aodb 5489 aoda 5490 aodc 5491 aode 5492 aoeo 5493 aoe3 5494 aoe6 5495 a0e6 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 55" 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 aoeb aoee aofo aofl a0f3 a0f5 a0f8 aofa aofc aofe aioo al02 a 104 al06 al08 aioa aioc aioe a 110 a 112 a 114 a 116 a 117 a 118 a lla a llb alld a llf 20 e3 a 1 a9 do ao ao a2 00 86 7f 20 66 al 4c e9 ao 20 f2 a 1 a9 00 38 e5 71 85 71 20 Be ao e6 71 fo ba a2 fc a9 01 a 4 7a c4 72 do 10 a4 7b c4 73 do Oa a4 7c c4 74 do 04 a4 7d c4 75 08 2a 90 09 e8 95 2b fo 2e 10 30 divio jsr movaf lda l$d0 ldy ISao ldx 1$00 fdivf stx arisgn jsr movfm jmp fdi vt jsr round lda #$00 sec sbc facexp sta facexp jsr muldiv inc facexp beq goover ldx l$fc lda #$01 divide ldy argho cpy facho bne savawo ldy argmoh cpy facmoh bne savawo ldy argmo cpy facmo bne savawo ldy arglo cpy faclo savawo php rol a bcc qshft inx sta reslo,x beq ld100 bpl divnrm copy fac II nach arg fac-arg ungepackt: vorzeichenduplikat vari adr.lo=ac, hi=yr nach fac II basic-routine "I" (dez. divisionl 5496 a0e6 ===> holt wert in arg, fac = arg I fac <=== 5497 aoe6 5498 a0e6 20 5c ao fdiv jsr conupk holt arg lo=ac, hi=yr in fac 12 5499 aoe9 5500 a0e9 5501 5502 a0e9 a0e9 ===> basic-routine "I" (dez. divisionl <=== 5503 a0e9 fo 5d fdivt beq dvoerr ausgabe "?division by zero error ready fac 11 rundung fac II: exponent fac 11: exponent korrektur von fac u. arg fac 11: exponent fac-arg ungepackt: mantisse fac 11: mantisse fac-arg ungepackt: mantisse fac 11: mantisse fac-arg ungepackt: mantisse fac 11: mantisse fac-arg ungepackt: mantisse fac 11: mantisse Zwischenergebnis multipl.ldivision

610/710 basic-math3 hard+soft ass/reass... seite 0115 zeile adr. obj.-code source-code 5532 5533 5534 5535 5536 5537 553B 5539 5540 5541 5542 5543 55H 5545 5546 5547 5548 al21 al23 al24 al26 ai2b al2a al2c al2e al30 al32 a 134 al35 al36 al37 al39 al3b al3d a9 a 1 2B bo ae 06 7d 26 7c 26 7b 26 7a bo e6 30 ce 10 e2 ab Ba 48 a2 03 b5 7a f5 72 95 7a lda /t$0 I qshft plp bcs divsub shfarg asl arglo rol argmo rol argmoh rol argho bcs savawo bmi di vide bpl savawo di vsub tay txa pha ldx #$03 divsbl lda argho,x sbc facho,x sta argho,x 5549 al3f ca dex 5550 a 140 10 n bpl divsbl 555 I a142 6B pla 5552 a143 aa tax 5553 aih 98 tya 5554 a145 4c 26 al jmp shfarg 5555 a 14B 5556 a 14B 5557 ai4b ===> ausgabe "?division by zero error, ready <=== 555B 5559 5560 556 I 5562 5563 5564 5565 5566 5567 556B 5569 a14b a 148 aha a 14d a14d a 14d aih a 15 I al52 al53 a I 54 al55 5570 al56 5571 a 157 5572 a 159 5573 a 15a 55 74 5575 al5a al5a 5576 a 15a 5577 a 15a 557B a 15c 5579 a 15e 55BO al60 55BI al61 55B2 al63 55B3 al66 55B4 al66 55B5 55B6 a166 al66 55B7 a166 55BB ai6b 55B9 a16a a2 3c 4c 52 85 a9 40 da d2 aa aa aa aa aa aa B5 Ba 2B dvoerr ldx #$3c jmp error ldioo lda #$40 bne qshft divnrm asl a asl a asl a asl a asl a asl a sta facov plp fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac-arg ungepackt: mantisse fac II: mantisse fac-arg ungepackt: mantisse ind. jmp zur Fehlerroutine fac overflow-byte ===> erg. nach fac, linksbündig machen <=== a2 03 movfr ldx #$03 b5 2B movfrz lda resho,x 95 72 sta facho,x ca dex 10 f9 bpl movfrz 4c ba 9e jmp normal ===> vari adr.lo=ac, hi=yr nach fac II <=== a2 Of B5 22 B4 23 movfm ldx #$0f movfum sta indexl sty indexl+l Zwischenergebnis multipl./division fac II: mantisse fac linksbündig machen addrl indirekter index II addrh indirekter index II

610/710 basic-math3 hard+soft ass/reass.... seite 0116 zeile adr. obj.-code source-code 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 56 71 5612 al6c al6e a 170 a 172 aih a 175 al77 a 179 a 77a a 17c a 17e a 17f a IBI al83 al85 al87 aibb aiba aibc aibe al91 al91 86 01 ao 04 b I 22 85 75 88 b I 22 85 H 88 bl 22 85 73 88 b I 22 85 76 09 80 85 72 88 b I 22 85 71 84 80 4c Be ba stx i6509 ldy #$04 lda (indexl),y sta faclo dey lda (indexll,y sta facmo dey lda ( index I I, y sta facmoh dey lda ( index I I, y sta facsgn ora #$80 sta facho dey lda (indexl),y sta facexp sty facov jmp mapusr a 191 ===> fac #2 nach $6a-$6e <=== 5613 al91 5614 al91 a2 6a 5615 al93 2c 5616 al94 5617 al94 mov2f ldx #$6a.byte $2c 5618 al94 ===> fac #I nach $64-$68 <=== 5619 al94 5620 a194 a2 64 5621 al96 ao 00 5622 al98 5623 al98 movlf ldx #$64 ldy #$00 5624 al98 ===> fac #I runden, nach xr yr <=== 5625 al98 5626 al98 5627 al9b 5628 al9d 5629 al9f 5630 al9f 20 f2 a I a9 Of 10 Ob movmf jsr round lda #$0f bpl movooi 5631 al9f ===> gk-zahl aus fac in variable <=== 5632 al9f 5633 al9f a6 54 5634 alal a4 55 5635 ala3 a5 56 5636 ala5 5637 ala5 movvf ldx lstpnt ldy lstpnt+l lda lstpnt+2 5638 ala5 ===> fac #I runden,nach xr, yr <=== 5639 ala5 5640 ala5 48 56" 5642 5643 56H ala6 ala9 alaa alac 20 f2 a I 68 85 0 I 84 23 5645 alae 86 22 5646 albo ao 04 5647 alb2 a5 75 movumf pha jsr round pla movooi sta i6509 sty index1+1 stx index1 ldy #$04 lda faclo 6509 indirection register addrl indirekter index #I fac #1: mantisse addrl indirekter index #I fac #1: mantisse addrl indirekter index #I fac #I: mantisse addrl indirekter index #I fac #1: vorzeichen fac #1: mantisse addrl indirekter index #I fac #1: exponent fac overflow-byte umsch. auf bank # fac #7 rundung addrl zeiger letzter string addrh zeiger letzter string bank zeiger letzter string fac #1 rundung 6509 indirection register addrh indirekter index #I addrl ~ndirekter index #1 fac #1: mant~sse

610/710 basic-math3 hard+soft ass/reass.... seite 0117 zeile adr. obj. -code source-code 5648 alb4 5649 alb6 5650 alb7 5651 alb9 5652 albb 5653 albc 5654 albe 5655 alco 5656 a lc I 5657 alc3 5658 alc5 5659 alc7 5660 alc9 566 I alca 5662 alcc 5663 alce 5664 aldo 5665 ald3 5666 ald3 9 I 22 88 a5 74 9 I 22 88 a5 73 9 I 22 88 a5 76 09 7f 25 72 9 I 22 88 a5 71 9 I 22 84 80 4c Be ba sta lindexl},y dey lda facmo sta lindexll,y dey lda facmoh sta (indexl},y dey lda facsgn ora #$7f and facho sta lindexl},y dey lda facexp sta lindexl},y sty facov jmp mapusr 5667 ald3 ===> copy arg nach fac #1, yr <=== 5668 ald3 5669 ald3 a5 7e movfa lda argsgn 5670 ald5 85 76 5671 ald7 a2 05 5672 ald9 b5 78 5673 aldb 95 70 5674 aldd ca 5675 alde 5676 aleo 56 77 ale2 5678 ale3 5679 ale3 do f9 86 80 60 movfal sta facsgn ldx #$05 movfal lda bits,x sta dsctmp,x dex bne movfal stx facov rts 5680 ale3 ===> copy fac #I nach arg<=== 5681 ale3 5682 5683 a1e3 a1e6 20 f2 1 a2 06 movaf movef jsr round ldx #$06 5684 5685 5686 5687 5688 5689 a1e8 a lea a1ec a1ed alef a1f 1 b5 70 95 78 ca do f9 86 80 60 movafl lda dsctmp,x sta bits,x dex bne movafl stx facov movrts rts 5690 a1f2 5691 a1f2 5692 a!f2 ===> fac #1 rundung <=== 5693 a1f2 5694 a1f2 a5 7! round 5695 a 1f4 fo fb 5696 a1f6 06 80 5697 a 1 fb 90 f7 lda facexp beq movrts asl facov bcc movrts 5698 a1fa 5699 a1fa 5700 a1fa ===> mantisse von fac um 1 erhöhen <=== 5701 5702 5 703 5704 5705 a202 a lfa a 1fa 20 H 9f a!fd do f2 a1ff 4c 1b 9f incrnd ]Sr incfac bne movrts jmp rndshf addrl indirekter index #I fac #1: mantisse addrl indirekter index #I fac #1: mantisse addrl indirekter index #I fac #1: vorzeichen fac #1: mantisse addrl indirekter index #I fac #1: exponent addrl indirekter index #I fac overflow-byte umsch. auf bank # I fac-arg ungepackt: vorzeichen fac #!: vorzeichen shift-zähler zeitweise descriptoren-ablage fac overflow-byte fac #1 rundung zeitweise descriptoren-ablage shift-zähler fac overflow-byte fac #1: exponent fac overflow-byte

610/710 basic-math3 hard+soft ass/reass.... seite 0118 zeile adr. obj.-code source-code 5706 a202 5707 a202 ===> vorzeichentest fac #I <=== 5708 a202 5709 a202 a5 71 sign lda facekp fac II: ekponent 5710 a204 fo 09 beq signrt 5711 a206 a5 76 fcsign lda facsgn fac II: vorzeichen 5112 a208 5113 a208 5114 a208 ===> Vergleichsroutine für 0 <=== 5115 a208 5116 a208 2a fcomps rol a 5717 a209 a9 ff lda lt$ff 5718 a20b bo 02 bcs signrt 5119 a20d a9 0 I lda lt$01 5720 a20f 60 signrt rts 5721 a210 5122 a210 5123 a210 ===> basic-routine sgn fac=sgn(facl <=== 5724 a210 5125 a210 20 02 a2 sgn jsr sign vorzeichentest fac ltl 5726 a213 5727 a213 5728 a213 ===> status-byte in fac <=== 5729 a213 5730 a213 85 72 float sta facho fac ltl: mantisse 5731 a215 a9 00 lda lt$00 5732 a217 85 73 sta facmoh fac ltl: mantisse 5733 a219 a2 88 ldk #$88 5734 a21b a5 72 floats lda facho fac ltl: mantisse 5735 a21d 49 ff eor lt$ff 5736 a21f 2a rol a 5737 a220 5738 a220 5739 a220 ===> ende umw. fliesskomma <=== 5740 a220 5141 a220 a9 00 floa tc lda lt$00 5742 a222 85 15 sta faclo fac ltl: mantisse 5743 a224 85 14 sta facmo fac ltl: mantisse 57H a226 86 71 StK facekp fac ltl: ekponent 5745 a228 85 80 sta facov fac overflow-byte 5 746 a22a 85 76 sta facsgn fac ltl: vorzeichen 5741 a22c 4c b5 9e jmp fadfit macht fac linksbündig 5748 a22f 5749 a22f 5750 a22f ===> basic-routine abs abs=abs(facl <=== 5751 a22f 5752 a22f 46 76 abs lsr facsgn fac ltl: vorzeichen 5753 a231 60 rts 5754 a232 5755 a232 5756 a232 ===> vergleich fac #I mit vari lac/yrl <=== 5757 a232 5758 a232 85 25 fcomp sta indek2 addrl indirekter indek #2 5759 a234 84 26 fcompn sty indek2+1 addrh indirekter index #2 5760 a236 ao 00 ldy #$00 5 76 I a238 20 78 a2 jsr fclnk2 lda(indek2},y von bank 15 5762 a23b c8 iny 5 763 a23c aa tak

610/710 basic-math3 hard+soft ass/reass.... seite 0119 zeile adr. obj.-code source-code 5764 a23d fo c3 beq sign Vorzeichentest fac #I 5765 a23f 20 7B a2 jsr fcinx2 lda(index2},y von bank 15 5766 a242 45 76 eor facsgn fac #1: vorzeichen 5 76 7 a2h 30 co bmi fcsign 576B a246 e4 7 I cpx facexp fac II: exponent 5769 a248 do 25 bne fcompc 5770 a24a 20 7B a2 jsr fcinx2 lda(index2},y von bank 15 5771 a24d 09 BO ora #$BO 5 772 a2h c5 72 cmp facho fac #1: mantisse 5773 a251 do lc bne fcompc 5774 a253 cb iny 5775 a254 20 7B a2 jsr fcinx2 lda(index2},y von bank 15 5776 a257 c5 73 cmp facmoh fac #I: mantisse 5777 a259 do 14 bne fcompc 577B a25b cb iny 5779 a25c 20 7B a2 jsr fcinx2 lda(index2},y von bank 15 5 7BO a25f c5 H cmp facmo fac #I: mantisse 5 7B I a261 do Oe bne fcompc 57B2 a263 cb iny 57B3 a264 a9 7f lda #$7f 5784 a266 c5 BO cmp facov fac overflow-byte 57B5 a26b 20 7B a2 jsr fcinx2 lda(index21,y von bank 15 57B6 a26b e5 75 sbc faclo fac #I: mantisse 5 TB 7 a26d fo 30 beq qintrt 57BB a26f a5 76 fcompc lda facsgn fac #1: vorzeichen 51B9 a271 90 02 bcc fcompd 5790 a273 49 ff eor #$ff 5 79 I a2 15 4c OB a2 fcompd jmp fcomps Vergleichsroutine für 0 5792 a27b 5793 a27b 5794 a27b ===> lda(index2j,y von bank 15 <=== 5795 a21b 5796 a27b 20 7B ba fcinx2 jsr mapsys ums eh. auf bank # 15 5 79 7 a27b b I 25 lda (index2j,y addrl indirekter index #2 579B a27d 4c Be ba jmp mapusr ums eh. auf bank # I 5799 a2bo 5BOO a2bo.end 5BOI a2bo.lib math4

610/710 basic-math' hard+soft ass/reass.... seite 0120 zeile adr. obj.-code source-code 5803 a280 580, 5805 5806 5807 a280 a280 a280 a282 5808 a28' 5809 a285 5810 a287 5811 a289 5812 a28b 5813 a28c 58" a28e 5815 a290 5816 a293 5817 a29' 5818 a296 5819 a29b 5820 a29a 5821 a29d 5822 a29f 60 5823 a2a0 582' a2a0 5825 a2a0 5826 a2al 582 7 a2a3 5828 a2a5 5829 a2a 7 5830 a2a9 5831 a2ab 5832 a2ae 5833 a2b0 5834 a2b I 5835 a2b I ===> umw. gk-zahl in integer <=== a5 71 fo U 38 e9 ao 2' 76 10 09 aa a9 ff 85 78 20 2d 9f Ba a2 71 c9 f9 10 06 20 79 9f 8' 78 ab a5 76 29 80 H 72 05 72 85 72 20 90 9f 8' 78 60 qint lda facexp beq clrfac sec sbc 1$ao bi t facsgn bpl qishft tax lda 1$ff sta bi ts jsr negfch txa qishft ldx 1$71 cmp 1$f9 bpl qintl jsr shiftr sty bits qintrt rts qintl tay lda facsgn and 1$80 lsr facho ora facho sta facho jsr rolshf sty bits rts fac II: exponent fliesskommaaccu löschen fac II: vorzeichen shift-zähler mantisse von fac invertieren schiebt fac rechts bis exp. shift-zähler fac II: vorzeichen fac II: mantisse fac II: mantisse fac II: mantisse schiebt fac bitweise nach rechts shi ft-zähler 5836 a2bl ===> basic-routine "int" fac=int(fac} <=== 5837 a2b I 5838 5839 58,0 580 5842 580 58H 58H 58H 580 58H 58,9 5850 5851 a2bl a2b3 a2b5 a2b7 a2ba a2bc a2be a2c0 a2c2 a2c3 a2c5 a2c7 a2c9 a2cb a5 71 c9 ao bo 20 20 80 a2 8' 80 a5 76 8' 76 49 80 2a a9 ao 85 71 a5 75 85 Oe 4c b5 9e int lda facexp cmp l$a0 bcs intrts jsr qint sty facov lda facsgn sty facsgn eor 1$80 rol a lda l$a0 sta facexp lda faclo sta charac jmp fadflt fac II: exponent 5852 a2ce 5853 a2ce 585' a2ce ===> fliesskommaaccu löschen <=== 5855 a2ce 5856 a2ce 85 72 clrfac sta facho 5857 a2d0 85 73 sta facmoh 5858 a2d2 85 H sta facmo 5859 a2d' 85 75 s ta faclo 5860 a2d6 ab tay umw. gk-zahl in integer fac overflow-byte fac II: vorzeichen fac II: vorzeichen fac II: exponent fac II: mantisse puffer für trennzeichen macht fac linksbündig fac II: mantisse fac II: mantisse fac 11: mantisse fac 11: mantisse 0

610/710 basic-math4 hard+soft ass/reass.... seite 0121 zeile adr. obj.-code source-code 5861 a2d7 60 intrts rts 5862 a2d8 5863 a2d8 5864 a2d8 ===> umw. zahlenstring in gk-zahl <=== 5865 a2d8 5866 a2d8 ao 00 fin ldy #$00 586 7 a2da a2 Oe ldx #$Oe 5868 a2dc 94 6b finzlp sty lowds+ I, x addrh zielanfang (versch. II bytes vor dez.punkt 5869 a2de ca dex 5870 a2df 10 fb bpl finzlp 5871 a2e I 90 Of bcc findgq 5872 a2e3 c9 2d cmp #$2d 5873 a2e5 do 04 bne qplus 5874 a2e7 86 77 stx sgnflg fac #1: Vorzeichenduplikat 5875 a2e9 fo 04 beq finc 5876 a2eb c9 2b qplus cmp #$2b 58 77 a2ed do 05 bne fin I 58 78 a2ef 20 26 ba finc jsr chrget nächstes zeichen nach ac (ind.jmpl 5879 a2f2 90 5b findgq bcc findig aufruf durch mantissen-ziffer 5880 a2h c9 2e finl cmp #$2e 5881 a2f6 fo 2e beq findp aufruf durch dezimalpunkt 5882 a2f8 c9 45 cmp #$45 5883 a2fa do 30 bne fine 5884 a2fc 20 26 ba jsr chrget nächstes zeichen nach ac (ind.jmpl 5885 a2ff 90 I 7 bcc fnedgl 5886 a301 c9 ab cmp #$ab 5887 a303 fo Oe beq finec I 5888 a305 c9 2d cmp #$2d 5889 a307 fo Oa beq finec I 5890 a309 c9 aa cmp #$aa 5891 a30b fo 08 beq finec 5892 a30d c9 2b cmp #$2b 5893 a30f fo 04 beq finec 5894 a3 II do 07 bne finec2 5895 a313 66 6f finecl ror lowtr+2 bank ursprunganfang!verschieben}/ vorz.exp. 5896 a315 20 26 ba finec jsr chrget nächstes zeichen nach ac lind.jmpl 5897 a318 90 5c fnedgl bcc finedg 5898 a31a 24 6f finec2 bit lowtr+2 bank ursprunganfang (verschieben}/ vorz.exp. 5899 a31c 10 Oe bpl fine 5900 a31e a9 00 lda #$00 5901 a320 38 sec 5902 a321 e5 6c sbc lowds+2 bank zielanfang (versch. II exp.basis10 5903 a323 4c 2e a3 jmp fine1 5904 a326 5905 a326 5906 a326 ===> aufruf durch dezimalpunkt <=== 5907 a326 5908 a326 66 6e findp ror lowtr+1 addrh ursprunganfang!verschieben} temp. fac#2 5909 a328 24 6e bi t lowtr+1 addrh ursprunganfang (verschieben} temp. facll2 5910 a32a 50 c3 bvc finc 59 II a32c a5 6c fine lda lowds+2 bank zielanfang (versch. II exp.bas~s10

6101710 basic-math4 hard+soft asslreass... seite 0122 zeile adr. obj.-code source-code 5912 a32e 38 5913 a32f e5 6b 5914 a331 5915 a333 5916 a335 5917 a337 5918 a33a 5919 a33c 5920 a33e 5921 a340 5922 a343 85 6c fo 12 10 09 20 d5 ao e6 6c do f9 fo 07 20 b9 ao c6 6c 5923 a345 do f9 5924 a347 a5 77 5925 a349 30 01 5926 a34b 60 5927 a34c 5928 a34c fine I sec sbc lowds +I sta lowds+2 beq finqng bpl finmul findiv jsr divio inc lowds+2 bne findiv beq finqng finmul jsr mulio dec lowds+2 bne finmul finqng lda sgnflg bmi negxqs rts 5929 a34c 4c 7a a5 negxqs jmp negop 5930 a3h 5931 a3h 5932 a34f ===> aufruf durch mantissen-ziffer <=== 5933 a3h 5934 5935 a34f a350 48 24 6e findig pha bit lowtr+l 5936 a352 10 02 bpl findgl 5937 a354 e6 6b inc lowds+l 5938 a356 20 b9 ao findgl jsr mulio 5939 a359 68 pla 5940 594 I 5942 590 a35a a35b a35d a360 38 e9 30 20 63 a3 4c ef a2 sec sbc 1$30 jsr finlog jmp finc 59H a363 5945 a363 addrh zielanfang (versch. II bytes vor dez.punkt bankzielanfang lversch.ji exp.basisio division fac II = fac I 10 bankzielanfang (versch.ll exp.basisio multiplikation fac II = fac 10 bank zielanfang (versch. II exp.basisio fac II: Vorzeichenduplikat sprung "negation", vorzeichen neg. sprung "negation", vorzeichen neg. addrh ursprunganfang (verschieben} temp. facl2 addrh zielanfang (versch. II bytes vor dez.punkt multiplikation fac II = fac 10 liest ascii (0.. 91 aus basic 5946 a363 ===>liest ascii (0.. 9} aus basic <=== 594 7 a363 5948 a363 48 finlog pha 5949 5950 5951 5952 5953 5954 a364 a367 a368 a36b a36d a36f 20 e3 a I 68 20 13 a2 a5 7e 45 76 85 7f jsr movaf pla jsr float lda argsgn eor facsgn sta arisgn copy fac #I nach arg 5955 5956 a3 71 a373 5957 a376 5958 a376 5959 a3 76 a6 71 4c 4d 9e a5 6c 5960 a378 c9 Oa 5961 a37a 90 09 ldx facexp jmp faddt finedg lda lowds+2 cmp #$0a bcc mlexio status-byte in fac fac-arg ungepackt: vorzeichen fac II: vorzeichen fac-arg ungepackt: Vorzeichenduplikat fac II: exponent basic-routine (dez. add.j bank zielanfang (versch. II exp.basisio

610/710 basic-math4 hard+soft ass!reass... seite 0123 zeile adr. obj.-code source-code 5962 a37c a9 64 5963 a37e 24 6f 5964 5965 5966 5967 a3bo a382 a385 a385 5968 a385 Oa 5969 5970 5971 a386 a387 a388 5972 5973 5974 5975 59 76 5977 5978 5979 5980 5981 5982 5983 a38a a38b a38c a3be a391 a393 a395 a397 a39a a39d a39e a3a0 30 le 4c 5e 9f Oa 18 65 6c Oa 18 ao oo 8d 5b 02 a5 87 85 01 b 1 85 20 Be ba 6d 5b 02 38 e9 30 85 6c lda #$64 bit lowtr+2 bmi mlexmi jmp overr mlexio asl a asl a clc adc lowds+2 asl a clc ldy #$00 sta ldaadr lda txtptr+2 sta i6509 lda ttxtptr},y jsr mapusr adc ldaadr sec sbc #$30 mlexmi sta lowds+2 5984 a3a2 4c 15 a3 jmp finec 5985 a3a5 5986 a3a5 5987 a3a5 ===> gleitkommakonst. 999999999.9 <=== 5988 a3a5 5989 a3a5 9b n0999.byte $9b, $3e, $bc, $1f, $fd 5989 a3a6 3e 5989 a3a7 bc 5989 a3a8 lf 5989 a3a9 fd 5990 a3aa 5991 a3aa 5992 a3aa ===> gleitkommakonst. 9999999999 <=== 5993 a3aa 5994 a3aa 5994 a3ab 5994 a3ac 5994 a3ad 5994 a3ae 5995 a3af 5996 a3af 9e 6e 6b 27 fd n9999.byte $9e, $6e, $6b, $27, $fd bank ursprunganfang tverschiebenll vorz.exp. ausgabe '?overflow error bank zielanfang tversch. II exp.basisio addrl modifiable adresse bank zeigerauf akt. term 6509 indirection register addrl zeiger auf akt. term umsch. auf bank # 1 addrl modifiable adresse bank zielanfang tversch. II exp.basisio 5997 a3af ===> gle~tkommakonst. le9 <=== 5998 a3af 5999 a3af 9e nmil. byte $9e, $6e, $6b, $28, $00 5999 a3b0 6e 5999 a3bl 6b 5999 a3b2 28 5999 a3b3 00 6000 a3b4 6001 a3b4 6002 a3b4 ===> umw. hex/dez, lo=xr, hi=ac, druck ze~len # <=== 6003 a3b4 6004 a3b4 85 72 linprt sta facho fac #1: mantisse ready

610/710 basic-math4 hard+saft ass/reass.... seite 0124 zeile adr. abj.-cade saurce-cade 6005 6006 6007 6008 6009 a3b6 a3b8 a3ba a3bb a3be 86 73 a2 90 38 20 20 a2 20 e2 a3 6010 ajcl a2 22 6011 a3c3 6012 a3c3 stx Facmah ldx #$90 sec jsr Flaa tc autfac jsr Faut ldx #$22 6013 a3c3 ===> textzeiger xr, textausgabe <=== 6014 a3c3 6015 a3c3 bd BF 82 msg 6016 a3c6 bc 90 82 6017 a3c9 Bd 5b 02 6018 a3cc Be 5c 02 6019 a3cf 6020 a3cf lda ebase,x ldy ebase+l, x sta ldaadr sty ldaadr+ I 6021 a3cf ===> textausgabe (Zeiger $25bl <=== 6022 a3cf 6023 a3cf 6024 a3d2 6025 a3d4 6026 a3d7 6027 a3da 6028 a3dc 6029 a3df 6030 a3e I 60 6031 a3e2 6032 a3e2 20 5a 02 FO Od 20 Ja b5 ee 5b 02 do F3 ee 5c 02 da ee msgprt jsr ldaabs beq msgrts jsr ochr inc ldaadr bne msgprt inc ldaadr+l bne msgprt msgrts rts Fac #1: mantisse ende umw. Fliesskamma umw. gk-zahl in string Iablage ab $200) ind. sprungtabeile basic-/system Fehlermeldungen ind. sprungtabeile basic-/system Fehlermeldungen addrl madifiable adresse addrh madifiable adresse lda abs routine ausgabe I Zeichen (in acl addrl madifiable adresse textausgabe (zeiger $25b) addrh madifiable adresse textausgabe lzeiger $25b) 6033 a3e2 ===> umw. gk-zahl in string Iablage ab $2001 <=== 6034 a3e2 6035 a3e2 6036 a3e4 6037 a3e6 6038 a3e8 6039 a3ea 6040 a3ec 6041 a3ef 6042 ajfi 6043 a3f3 60H 6045 6046 6041 a3fa 6048 6049 6050 6051 6052 6053 a403 6054 a405 6055 a407 6056 a409 6057 a40c 6058 a40e ao 01 a9 20 24 76 10 02 a9 2d 99 ff 0 I 85 76 84 82 cb ajh a9 30 a3f6 a6 71 a3f8 do 03 4c 04 a5 a3fd a3fd a3fd a9 00 a3ff eo 80 a401 fo 02 bo 09 a9 af ao a3 zo OB a9 Fl 85 6b ao Fout Fout I ldy #$0 I lda #$20 bit Facsgn bpl Fout I lda #$2d sta buf-l,y s ta Facsgn sty FbuFpt iny lda #$30 ldx Facexp bne faut 10 jmp foutl9 Fou t 10 lda #$00 cpx 11$80 beq Fout37 bcs fout 7 Fout37 lda #$af ldy ll$a3 jsr fmult lda #$f7 fout7 sta lowds+1 Fac #1: vorzeichen basic input-puffer (-$2fFI -1 Fac #1: varzeichen addrl zeiger Fac-puFFer (fout-rout.j Fac #1: exponent holt wert in arg fac = arg fac addrh zielanfang (versch. II bytes vor dez.punkt

670/770 basic-math4 hard+soft ass/reass.... seite 0725 zeile adr. obj.-code source-code 6059 a470 6060 a472 6061 a414 6062 a417 6063 a419 6064 a41b 6065 a41d 6066 a4 lf 6061 a422 6068 a424 6069 a426 6010 a429 6071 6072 6013 a42b a42d a430 6014 a432 6015 a434 6076 a07 6071 a43a 6078 aoc 6079 6080 6087 6082 6083 6084 a43e aof ah7 ah3 ah5 ah7 6085 ah9 6086 aha 6087 ahc 6088 ahd 6089 ahf 6090 a451 6097 6092 6093 6094 6095 6096 6091 6098 6099 6100 6707 6102 6103 6104 6105 a453 a454 a456 a45b a45a a45c a45d a460 a461 a463 a465 a466 a469 a46b a46b a9 aa ao a3 20 32 a2 fo le 10 12 a9 a5 ao a3 20 32 a2 fo 02 10 Oe 20 b9 ao c6 6b do ee 20 d5 ao e6 6b do dc 20 27 9e 20 80 a2 a2 01 a5 6b 78 69 Oa 30 09 c9 Ob bo 06 69 ff aa a9 02 38 e9 02 85 6c 86 6b Ba fo 02 10 73 a4 82 a9 2e cb 99 ff 01 Ba fo 06 a9 30 c8 99 ff 0 I 84 82 fout4 fout3 lda ISaa ldy #$a3 jsr fcomp beq bigges bpl fout9 lda l$a5 ldy 1$a3 jsr fcomp beq fout38 bpl fout5 fout38 jsr mul70 dec lowds+l fout9 bne fout3 jsr div70 inc lowds+l bne fout4 fout5 jsr faddh bigges jsr qint ldx 1$01 lda lowds+l clc adc #$0a bmi foutpi cmp l$0b bcs fout6 adc #$ff tax lda #$02 foutpi sec fout6 sbc #$02 sta lowds+2 stx lowds+7 txa beq fout39 bpl fout8 fout39 ldy fbufpt lda #$2e iny sta buf-7,y txa beq foutl6 lda #$30 iny sta buf-l,y foutl6 sty fbufpt vergleich fac II mit vari lac/yrl vergleich fac #I mit vari laclyrl multiplikation fac #I = fac 70 addrh zielanfang lversch.j/ bytes vor dez.punkt division fac II = fac I 10 addrh zielanfang lversch. II bytes vor dez.punkt fac #I + 0.5 umw. gk-zahl in integer addrh zielanfang lversch. II bytes vor dez.punkt bankzielanfang lversch.j/ exp.basis70 addrh zielanfang lversch.ji bytes vor dez.punkt einz. ziffern des zahlenstrings nacheinander berechnen addrl zeiger fac-puffer lfout-rout.j basic input-puffer l-$2ff) -1 basic input-puffer l-$2ff) -1 addrl zeiger fac-puffer lfout-rout.j 6106 a46b ===> einz. Ziffern des zahlenstrings nacheinander berechnen <=== 6107 a46b 6108 a46b ao oo fout8 ldy #$00 6109 a46d a2 80 ldx #$80 6170 a46f a5 75 fout2 lda faclo fac #7: mantisse

610/710 basic-math' hard+soft ass/reass.... seite 0126 zeile adr. obj.-code source-code 6111 ahi IB 6112 ah2 79 16 a5 6113 ah5 6114 ah7 6115 ah9 6116 ahc 6117 ahe 611B auo 6119 au3 6120 aus 6121 au7 6122 aua 6123 'Be 612, aud 6125 a4bf 6126 aui 6127 au2 B5 75 a5 74 79 15 a5 B5 74 a5 73 79 14 a5 B5 73 a5 72 79 13 a5 B5 72 eb bo 03 10 de 2c 30 db 612B au4 Ba 6129.,95 90 0' 6130 a'97 '9 ff 6131 a'99 69 Da 6132 a'9b 69 2f 6133 ahd cb 613' ahe cb 6135 auf c8 6136 aho cb 6137 a'al B' 51 6138 'a3 a4 82 6139 ah5 c8 6140 ah6 aa 61,1.,.7 29 7f 6142 610 61H 61H 6146 61H 61U 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 a'ae a'bo a'b2 a'b3 a4b6 a'bb a'ba a'bb 'bd 'bf a'co a'c2 a'c4 a'c6 a4c9 a'ca a4cc a'ce a'do a'd2 99 ff 01 c6 6b do 06 a9 2e cb 99 ff 0 I 84 82 a' 51 Ba Uff 29 BO aa co 24 do ab a4 82 b9 ff 0 I 88 c9 30 fo f8 c9 2e fo 01 c8 6164 a4d3 a9 2b 6165 a'd5 a6 6c clc adc foutbl +3, y sta faclo lda facmo adc foutbl+2,y sta facmo lda facmoh adc foutbl +I, y sta facmoh lda facho adc foutbl,y s ta facho inx bcs fout4 I bpl fout2.byte $2c fout4 I bmi fout2 txa bcc foutyp eor 1$ff adc lt$0a fou typ adc lt$2f iny iny iny iny sty varpnt ldy fbufpt iny tax and lt$7f sta buf-1,y dec lowds+l bne stxbuf lda lt$2e iny sta buf-l,y stxbuf sty fbufpt ldy varpnt txa eor lt$ff and 1$80 tax cpy 1$24 bne fout2 ldy fbufpt foutll lda buf-l.y dey cmp #$30 beq fout I I cmp #$2e beq fout 12 iny fout 12 lda l$2b ldx lowds+2 fac #1: mantisse fac 11: mantisse fac 11: mantisse fac ltl: mantisse fac #1: mantisse fac II: mantisse konst. für gleitkomma nach ascii: -100 ooo ooo fac 11: mantisse addrl zeiger auf variable im ram addrl zeiger fac-puffer lfout-rout.) basic input-puffer 1-$2ffi -1 addrh zielanfang lversch. J/ bytes vor dez.punkt basic input-puffer 1-$2ff) -1 addrl zeiger fac-puffer (fout-rout.j addrl zeiger auf variable im ram addrl zeiger fac-puffer lfout-rout.j basic input-puffer l-$2ff) -1 bank zielanfang (versch. )/ exp.basisio

610/110 basic-math4 hard+soft ass/reass.... seite 0121 zeile adr. obj.-code source-code 6166 a4d1 fo 2e beq foutl1 6167 a4d9 10 OB bpl fout 14 616B a4db a9 00 lda #$00 6169 a4dd JB sec 6 I 70 a4de e5 6c sbc lowds+2 bank zielanfang lversch.j/ exp.basisio 6171 a4e0 aa tax 6 I 12 a4el a9 2d lda #$2d 6 I 13 a4e3 99 01 02 fou t 14 sta buf+l,y basic input -puffer (-$2ff} +I 6 I 74 a4e6 a9 45 lda #$45 6 I 75 a4eb 99 00 02 sta buf,y basic input -puffer ( -$2ff J 6 I 76 a4eb Ba txa 6177 a4ec a2 2f ldx #$2f 6 I TB a4ee JB sec 6 I 79 auf eb fou t I 5 inx 61BO aho e9 Oa sbc #$0a 61BI ah2 bo fb bcs foutl5 61B3 ah6 99 03 02 sta buf+j,y 61B2 ah4 69 Ja adc #$3a basic input-puffer ( -$2ff J +3 61B4 61B5 ah9 a4 fa Ba 99 02 02 txa sta buf+2,y basic input -puffer ( -$2ff J +2 61B6 ahd a9 00 lda #$00 61B1 ahf 99 04 02 sta buf+4,y basic input-puffer ( -$2ff J +4 61BB a502 fo OB beq fout20 61B9 a504 99 ff 0 I foutl9 s ta buf-l,y basic input-puffer ( -$2ff J -I 6190 a507 a9 00 foutl1 lda #$00 6191 a509 99 00 02 s ta buf,y basic input-puffer ( -$2ff J 6192 a50c 60 fout20 rts 6193 a50d 6194 a50d 6195 a50d ===> fliesskomma-konstante 3276B ( 32 k J <=== 6196 a50d 6197 a50d 90 n3216b.byte $90 619B a50e 6199 a50e 6200 a50e ===> konstante 0.5 für funktion sqr <=== 6201 a50e 6202 a50e BO fhalf.byte $BO, $00, $00, $00, $00 6202 a50f 00 6202 a510 00 6202 a5 II 00 6202 a512 00 6203 a513 6204 a513 6205 a513 ===> kons t. für gleitkomma nach ascii: -100 ooo ooo <=== 6206 a513 6201 a513 fa foutbl.byte $fa 620B a514 Oa.byte $Oa 6209 a515 lf. byte $1f 6210 a516 00.byte $00 62" a517 00. byte $00, $9B, $96, $BO konst. für gleitkomma nach ascii:. 10 000 ooo 62" a51b 9B 62" a519 96 62" a51a BO 6212 a51b ff.byte $ff, $f0, $bd, $c0 konst. für gleitkomma nach ascii: - I 000 ooo 6212 a5 lc fo

610/710 basic-math4 hard+soft ass/reass...... seite 0128 zeile adr. ob'j.-code source-code 6212 a51d bd 62!2 a51fl co 6213 a51f 00.byte $00, $01' $86, Sao konst. für glflitkomma nach ascii: '100 000. 6213 a520 01 6213 a52 I 86 6213 a522 ao 6214 a523 ff. bytll $ff, $ff, $d8, $f0 konst. für glflitkomma nach ascii: -10 ooo 6214 a524 ff 6214 a525 d8 6214 a526 fo 621S a527 00. byte $00, $00, $03, $eb konst. für gleitkomma nach ascii: "I ooo 62!5 a528 00 6215 as29 03 6215 as2a eb 62!6 a52b ff.byte $ff, $ff, $ff, $9c konst. für glfli tkomma nach ascii: "-100' 6216 a52c ff 6216 as2d ff 6216 a52fl 9c 6217 a52f 00.byte $00, $00, $00, $0a konst. für gleitkomma nach ascii: '10. 62!7 a530 00 6217 a531 00 6217 a532 Oa 6218 as33 ff.byte $ff, $ff, $ff, $ff konst. für gleitkomma nach ascii: - I, 6218 as34 ff 6218 as3s ff 6218 as36 ff 6219 a537 6220 a537 6221 as37 ===> basic-routine sqr fac=sqrlfac/ <=== 6222 as37 6223 a537 20 e3 al sqr jsr movaf copy fac 1 nach arg 6224 as3a a9 Oe lda soe 6225 a53c ao as ldy Sas 6226 as3e 20 65 a 1 jsr movfm vari adr.lo=ac, hi=yr nach fac 1 6227 as41 6228 as41 6229 a541 = => basic-routine "dez. potenz" <=== 6230 as41 6231 a541 fo 70 fpwrt beq exp basic-routine exp fac=exp I fac I 6232 as43 as 79 lda argexp fac-arg ungepackt: exponent 6233 as45 do 03 bne fpwrtl 6234 a547 4C dc 9e jmp zerofl 6235 a54a 6236 a54a 6237 a54a a2 Sb fpwrt I ldx Ssb 6238 a54c ao 00 ldy soo 6239 a54e 20 98 al jsr movmf fac I runden, nach xr yr 6240 a551 a5 7e lda argsgn fac-arg ungepackt: vorzeichen 6241 a553 10 Of bpl fpwrl 6242 a555 20 bl a2 jsr int basic-routine int fac=int(facl 6243 a5s8 a9 Sb lda S5b 6244 a5sa ao 00 ldy 1$00

610/710 basic-math4 hard soft ass/reass.... seite 0129 zeile adr. obj.-code source-code 6245 a55c 20 32 a2 jsr fcomp vergleich fac #I mit vari lac/yrl 6246 a55f do 03 bne fpwrl 6247 a561 98 tya 6248 a562 a4 Oe ldy charac puffer für trennzeichen 6249 a564 d5 a I 20 fpwrl jsr movfa I 6250 a56 7 98 tya 6251 a56b 48 pha 6252 a569 20 ca 9f jsr log basic-routine 'log 6253 a56c a9 5b lda #$5b 6254 a56e ao 00 ldy #$00 6255 a570 20 OB ao jsr fmul t holt wert in arg fac = arg fac 6256 a573 20 b3 a5 jsr exp basic-routine exp fac=exp(facj 6257 a576 68 pla 6258 a577 h lsr a 6259 a578 90 Oa bcc negrts 6260 a57a 6261 a57a 6262 a5 7a ===> basic-routine negation <=== 6263 a5 7a 6264 a57a a5 71 negop lda facexp fac #I: exponent 6265 a57c fo 06 beq negrts 6266 a57e 6267 a57e 6268 a57e ===> facsgn invertieren <=== 6269 a57e 6270 a57e a5 76 sa v4 I lda facsgn fac #I: vorzeichen 6271 a5bo 49 ff eor #$ff 6272 a582 85 76 sta facsgn fac #1: Vorzeichen 6273 a584 60 negrts rts 6274 a585 6275 a585 6276 a585 ===> konstante I. 44269504 = l/log{2j <=== 6277 a585 6278 a585 BI logeb2. byte $81, $38. $aa, $3b, $29 6278 a586 38 6278 a587 aa 6278 a588 3b 6278 a589 29 6279 a58a 6280 a58a 6281 a58a ===> 8 konstanten für Funktion exp (polynomgrad 7) <=== 6282 a58a 6283 a58a 07 expcon.byte $07 6284 a58b 7 I.byte $71. $34. $58, $3e, $56 kons t. 2.14987637 e-5 für exp 6284 a5bc 34 6284 a58d 58 6284 a58e 3e 6284 a58f 56 6285 a590 74.byte $74. $16. $7e, $b3. $1b kons t. 1.43523140 e-4 für exp 6285 a591 16 6285 a592 7e 6285 a593 b3 6285 a594 Tb 6286 a595 77.byte $77. $2f. See, $e3, $85 kons t. 1. 34226348 e-3 für exp 6286 a596 2f

610/710 basie-math4 hard+soft ass/reass... seite 0130 zeile adr. obj.-eode souree-eode 6286 a597 ee 6286 a59b e3 6286 a599 85 6287 a59a 7a.byte $7a, $1d, $8,, Sie, $2a konst. 9.61401170 e-3 für exp 628 7 a59b ld 6287 a59e 84 6287 a59d le 6287 a59e 2a 6288 a59f 7e.byte $7e, $63, $59, $58, Soa konst. 0.05550051269 für exp 6288 a5a0 63 6288 a5a I 59 6288 a5a2 58 6288 a5a3 Oa 6289 a5a4 7e.byte $7e, $75, $fd, Se 7, $e6 konst. 0.240226385 für exp 6289 a5a5 75 6289 a5a6 fd 6289 a5a 7 e7 6289 a5ab e6 6290 a5a9 80. byte $80, $31' $72' $18, $10 konst. 0. 69314 7186 für exp 6290 a5aa 31 6290 a5ab 72 6290 a5ae 18 6290 a5ad 10 6291 a5ae 81.byte $81, $00, $00, $00, $00 konst. 1 für exp 6291 a5af 00 6291 a5b0 00 6291 a5bl 00 6291 a5b2 00 6292 a5b3 6293 a5b3 6294 a5b3 ===> basie-routine exp fae=exp(fael <=== 6295 a5b3 6296 a5b3 a9 85 exp lda #$85 6297 a5b5 ao a5 ldy #$a5 6298 a5b7 20 OB ao jsr fmult holt wert in arg fac arg fac 6299 a5ba a5 80 lda facov fae overflow-byte 6300 a5bc 69 50 ade #$50 6301 a5be 90 03 bce stold 6302 a5co 20 fa a 1 jsr incrnd mantisse von fac um 1 erhöhen 6303 a5e3 85 63 stold sta jmper+2 addrh sprung zu funetions-rout. 6304 a5c5 20 e6 a 1 jsr movef 6305 a5e8 a5 71 lda facexp fae #I: exponent 6306 a5ca e9 88 emp #$88 630 7 a5ec 90 03 bec expl 6308 a5ee 20 ab ao gomldv jsr mldvex 6309 a5d1 20 b 1 a2 expl jsr int basic-routine int fac=int(facl 6310 a5d4 a5 Oe lda charac puffer für trennzeichen 6311 a5d6 18 clc 6312 a5d7 69 81 ade #$81 6313 a5d9 fo f3 beq gomldv 6314 a5db 38 sec 6315 a5dc e9 01 sbc #$01 6316 a5de 48 pha 6317 a5df a2 05 ldx #$05

610/710 basic-math4 hard+soft ass/reass.... seite 0131 zeile adr. obj. -code source-code 6318 a5el b5 79 swalp lda argexp,k fac-arg ungepackt: exponent 6319 a5e3 b4 71 ldy facexp,k fac II: exponent 6320 a5e5 95 71 sta facexp,x fac II: exponent 6321 a5e7 94 79 sty argexp,x fac-arg ungepackt: exponent 6322 a5e9 ca dex 6323 a5ea 10 f5 bpl swalp 6324 a5ec a5 63 lda jmper+2 addrh sprung zu functions-rout. 6325 a5ee 85 80 sta facov fac overflow-byte 6326 a5f0 20 30 9e jsr fsubt basic-routine - (dez. subtr.l 6321 a5f3 20 71 a5 jsr negop basic-routine negation 6328 a5f6 a9 Ba lda 1$Ba 6329 a5f8 ao a5 ldy 1$a5 6330 a5fa 20 lb a6 jsr poly 6331 a5fd a9 00 lda 1$00 6332 dff 85 7f s ta arisgn fac-arg ungepackt: vorzeichenduplikat 6333 a601 68 pla 6334 a602 4c 90 ao jmp mldexp 6335 a605 6336 a605 6337 a605 :::> polynom-auswertung (::: 6338 a605 6339 a605 85 82 polyx sta fbufpt addrl zeiger fac-puffer (fout-rout.l sty fbufpt+l addrh zeiger fac-puffer (fout-rout.l fac II nach $64-$68 6340 6341 a607 a609 84 83 20 94 a 1 jsr movlf 6342 a60c a9 64 lda 1$64 6343 a60e 20 OB ao jsr fmult holt wert in arg fac arg * fac 63H a6 II 20 lf a6 jsr poly I 6345 a614 a9 64 lda 1$64 6346 a616 ao 00 ldy 1$00 6341 a618 4c 08 ao jmp fmult holt wert in arg fac arg fac 63U a61b 6349 a61b 6350 a61b 85 82 poly sta fbufpt addrl zeiger fac-puffer (fout-rout.l 6351 a61d 84 83 sty fbufpt+l addrh zeiger fac-puffer (fout-rout.l 6352 a61f 20 91 a I poly I jsr mov2f fac 12 nach $6a-$6e 6353 a622 a9 00 lda 1$00 6354 a624 II 82 ora lfbufpt /, y addrl zeiger fac-puffer lfout-rout. I 6355 a626 85 77 sta sgnflg fac II: Vorzeichenduplikat 6356 a628 a4 82 ldy fbufpt addrl zeiger fac-puffer (fout-rout. I 6357 a62a c8 iny 6358 a62b 98 tya 6359 a62c do 02 bne poly3 6360 a62e e6 83 inc fbufpt+l addrh zeiger fac-puffer (fout-rout. I 636, a630 85 82 poly3 sta fbufpt addrl zeiger fac-puffer lfout-rout.l 6362 a632 a4 83 ldy fbufpt+ 7 addrh zeiger fac-puffer (fout-rout.l 6363 a634 20 08 ao poly2 jsr fmult holt wert in arg fac : arg fac 6364 a637 a5 82 lda fbufpt addrl zeiger fac-puffer lfout-rout.l 6365 a639 H 83 ldy fbufpt+l addrh zeiger fac-puffer lfout-rout.l 6366 a63b 18 clc 6367 a63c 69 05 adc 1$05 6368 a63e 90 07 bcc poly4 6369 a640 c8 iny 6310 a641 85 82 poly4 sta fbufpt addrl zeiger fac-puffer lfout-rout. I 6371 a643 84 83 sty fbufpt I addrh zeiger fac-puffer (f'out-rout. I 6372 a645 20 4a 9e jsr fadd konstante in arg, fac : arg+fac 6373 a648 a9 6a lda l$6a 6374 a64a ao 00 ldy 1$00

610/TIO basic-math' hard+soft ass/reass... seite 0132 zeile adr. obj.-code source-code 63T5 ahc 6376 a6'e 6377 a650 6378 a651 6379 a651 c6 TT do e' 60 dec sgnflg bne poly2 rts 6380 a651 ===> konst. 118T95'6 für rnd <=== 6381 a651 6382 a651 98 6382 a652 35 6382 a653 H 6382 a6h Ta 6383 a655 638' a655 rmulc.byte $98. $35. $'' $Ta 6385 a655 ===> konst. 3.92T6TTT' e-' für 'rnd' <=== 6386 a655 638 T a655 68 638 T a656 28 raddc.byte $68, $28, $b1, $'6 638T a65t bl 638 T a658 '6 6388 a659 6389 a659 6390 a659 ===> basic-routine 'rnd' <=== 6391 a659 6392 a659 6393 a65c 639' a65e 6395 a660 6396 a662 e8 639T a663 do 01 639B 6399 6'00 6'01 6,02 H03 6'0' 6405 6'06 HOT 6'08 6'09 600 6' II 602 a665 a666 a66t a669 a66c a66e a6 TO a673 a6t5 a677 a6 Ta a6tc a6te a6bo a682 603 a684 H" a686 605 a688 Hl6 641T 60B 609 6420 H21 6422 6423 642' 6,25 6426 a68a a68c a6be a690 a692 a69' a696 a699 a69b a69d a69f 20 02 a2 rnd jsr sign 30 lc bmi rndl a6 8d ldx seedpt a' Be ldy seedpt+l inx bne rndio cb Ba a2 02 20 68 al a9 51 ao a6 20 08 ao a9 55 ao a6 20 h 9e a6 T5 a5 T2 B5 T5 B6 T2 a6 T3 a5 74 B5 T3 B6 T' a9 00 B5 T6 a5 71 B5 BO a9 BO B5 Tl 20 ba 9e a6 Bd a' Be a9 02 e8 rndio rndl iny txa ldx 1$02 jsr movfum lda 1$51 ldy l$a6 jsr fmul t lda 1$55 ldy l$a6 jsr fadd ldx faclo lda facho s ta faclo stx facho ldx facmoh lda facmo sta facmoh stx facmo lda 1$00 s ta facsgn lda facexp s ta facov lda 1$80 sta facexp jsr normal ldx seedpt ldy seedpt+l lda #$02 inx fac 11: Vorzeichenduplikat Vorzeichentest fac 11 addrl zeiger auf akt. zufallszahl addrh zeiger auf akt. Zufallszahl holt wert in arg fac konstante in arg, fac fac 11: mantisse fac II: mantisse fac 11: mantisse fac 11: mantisse fac 11: mantisse fac II: mantisse fac 11: mantisse fac 11: mantisse fac 11: vorzeichen fac 11: exponent fac overflow-byte arg fac arg+fac fac 11: exponent fac linksbündig machen addrl zeiger auf akt. zufallszahl addrh zeiger auf akt. zufallszahl

610/710 basic-math4 hard+soft ass/reass.... seite 0133 zeile adr. obj.-code source-code 6421 a6a0 do 01 bne rndzo 6428 a6a2 c8 iny 6429 a6a3 4c a5 al rndzo jmp movumf fac #I runden,nach xr, yr 6430 a6a6 6431 a6a6 6432 a6a6 ===> basic-routine 'cos' fac=cos(facj <=== 6433 a6a6 6434 a6a6 6435 a6a8 6436 a6aa 6437 a6ad 6438 a6ad a9 26 ao a 7 20 4a 9e cos lda #$26 ldy #$a 7 jsr fadd 6439 a6ad ===> basic-routine 'sin' <=== 6HO a6ad 6HI 6HZ 6H3 6H4 6H5 6H6 6H 7 6H8 6H9 a6ad a6b0 a6b2 a6b4 a6b6 a6b9 a6bc a6bf a6cl 20 e3 a I a9 Zb ao a 7 a6 1e 20 de ao 20 e3 a 1 20 b I az a9 00 85 7f sin jsr movaf lda #$2b ldy #$a 7 ldx argsgn jsr fdivf jsr movaf jsr int lda 1$00 sta arisgn 6450 a6c3 6451 a6c6 6452 a6c8 6453 a6ca 6454 a6cd 6455 a6cf 6456 a6d0 6451 a6d2 6458 a6d5 6459 a6d7 6460 a6d9 6461 a6dc 6462 a6de 6463 a6el 6464 a6e4 6465 a6e6 6466 a6e8 6467 a6eb 6468 a6ec 6469 a6ee 6410 a6fl 6411 a6f3 6412 a6f5 6473 a6f8 64 74 a6f8 20 30 9e a9 30 ao a 7 20 Zd 9e a5 76 48 10 Of 20 27 9e a5 76 30 Ob ad 59 02 49 ff 8d 59 02 20 7a a5 a9 30 ao a 7 20 4a 9e 68 10 03 20 7a a5 a9 35 ao a 7 4c 05 a6 sin I sinz sin3 jsr fsubt lda #$30 ldy #$a7 jsr fsub lda facsgn pha bpl sinl jsr faddh lda facsgn bmi sinz lda tansgn eor #$ff sta tansgn jsr negop lda 1$30 ldy #$a 7 jsr fadd pla bpl sin3 jsr negop lda 1$35 ldy #$a7 jmp polyx konstante in arg, fac copy fac II nach arg arg+fac fac-arg ungepackt: vorzeichen copy fac #I nach arg basic-routine 'int' fac=int(facj fac-arg ungepackt: Vorzeichenduplikat basic-routine - ldez. subtr.} konstante in arg, fac fac #1: vorzeichen fac #I + 0.5 fac #1: vorzeichen flag für 'tan vorzeichen flag für 'tan' vorzeichen basic-routine negation konstante in arg, fac basic-routine negation polynom-auswertung 64 75 a6f8 ===> basic-routine tan fac=tan lfac} <=== 64 76 6477 a6f8 a6f8 20 94 a I tan jsr movlf fac #I nach $64-$68 6418 6H9 a6fb a6fd a9 00 8d 59 02 lda 1$00 sta tansgn flag für 'tan' vorzeichen 6480 6481 6482 6483 a 700 703 a 705 a 701 20 ad a6 a2 5b ao 00 20 98 a I jsr sin ldx #$5b ldy #$00 jsr movmf basic-routine sin fac #I runden, nach xr yr arg-fac arg fac

610/710 basic-math4 hard+soft ass/reass... seite 0134 zeile adr. obj.-code source-code 6484 a70a a9 64 lda 1$64 6485 a 10c ao 00 ldy 1$00 6486 a 10e 20 66 al jsr movfm vari adr.lo=ac, hi=yr nach fac II 6487 a 711 a9 00 lda 1$00 6488 a713 85 76 sta facsgn fac II: vorzeichen 6489 a715 ad 59 02 lda tansgn flag für 'tan vorzeichen 6490 a718 20 22 a7 jsr cosc 6491 a 71b a9 5b lda l$5b 6492 a 11d ao 00 ldy 1$00 6493 a 71f 4c e6 ao jmp fdiv holt wert in arg, fac arg I fac 6494 a722 6495 a 122 6496 a722 48 cosc pha 6497 a723 4c e I a6 jmp sinl 6498 a 126 6499 a 126 6500 a 726 6501 a 126 ===> konstante pi/2 = I. 57079633 <=== 6502 a726 BI pi2. byte $81, $49, $Of, $da, $a2 6502 a 12 7 49 6502 a 128 Of 6502 a 129 da 6502 a72a a2 6503 a 12b 6504 a72b 6505 a72b ===> konstante 2*pi = 6.28318531 <=== 6506 a 12b 6501 a 12b 83 twopi 6501 a 12c u. byte $83, $49, SOf, $da, Sa2 6507 a 72d Of 6501 a 12e da 6507 a72f a2 6508 a 130 6509 a 130 6510 a730 ===> konstante 0.25 <=== 6511 a130 6512 a 130 7f fr4. byte $7f, $00, $00, $00, soo 6512 a 731 00 6512 a732 00 6512 a133 00 6512 a 734 00 6513 a 135 6514 a135 6515 a 735 ===> 6 konstanten für funktionen s~n + cos (polynomgrad 51 <=== 6516 a 135 6511 a735 05 sincon.byte $05 6518 a136 84.byte $84. $e6, S Ia, $2d, $1b konst. -14.3813907 für + cos s~n 6518 a 73 7 e6 6518 a 738 Ia 6518 a 739 2d 6518 a73a lb 6519 a 73b 86.byte $86, $28, $07. $f6, $f8 konst. 42.0077971 für 6519 a73c ZB 6519 a73d 07 6519 a 73e f6 6519 a73f f8 sin 1- cos

610/710 basie-math4 hard+soft ass/reass.... seite 0135 zeile adr. obj.-eode souree-eode 6520 aho 87.byte $87, $99, $68, $89, $0 I konst. -76.7041703 für s1.n + cos 6520 ahi 99 6520 ah2 68 6520 ahj 89 6520 a7h 01 6521 ah5 87.byte $87, $23, $35, $df, Sei konst. 81.6052237 für s1.n + cos 6521 a 746 23 6521 a7h 35 6521 ah8 df 6521 ah9 el 6522 aha 86.byte $86, $a5, $5d, $e7, $28 kons t. -41.3147021 für sin + cos 6522 ahb a5 6522 ahe 5d 6522 ahd e7 6522 ahe 28 6523 a7h 83.byte $83, $4 9' $0f, $da, $a2 kons t. 6.28318531 für sin + cos 6523 a 750 49 6523 a 75 I Of 6523 a 752 da 6523 a 753 a2 6524 a 754 6525 a 754 6526 a 754 ===> 12 konstanten für atn (polynomgrad 111 <=== 6527 a 754 6528 a754 Ob atneon.byte $Ob 6529 a 755 76.byte $76, $b3' $83, $bd, $d3 kons t. -6.84793912 e-4 für atn 6529 a 756 b3 6529 a 75 7 83 6529 a 758 bd 6529 a 759 d3 6530 a 75a 79.byte $79, Sie, $f4, $a6, $f5 konst.,,85094216 e-3 für atn 6530 a75b le 6530 a 75e H 6530 a 75d a6 6530 a 75e f5 6531 a 75f 7b.byte $7b, $83, $fe, $b0' $10 kons t. -0.0161117015 für atn 6531 a 760 83 6531 a 76 I fe 6531 a 762 bo 6531 a 763 10 6532 a 764 7e.byte $7e, $Oe, $1f, $67' Sea kons t. 0.034209638 für atn 6532 a 765 Oe 6532 a 766 lf 6532 a 76 7 67 6532 a 768 ea 6533 a 769 7e.byte $7e, $de, $53' $eb, Sei kons t. -0.054279133 für atn 6533 a 76a de 6533 a 76b 53 6533 a 76e eb

610/710 basic-math' hard+soft ass/reass... seite 0136 zeile adr. obj.-code source-code 6533 a76d Cl 653, a 76e 7d.byte $7d, $14. $6,, $70, S'c konst. 0.072,571965 für 'atn 653, a 76f 14 653' a 710 6' 653' a771 70 653' a 772 'c 6535 a 773 7d.byte $7d, $b7, $ea, $5 I. $7a kons t. -0.0898019185 für atn 6535 a7h b7 6535 a 775 ea 6535 a 7 76 51 6535 a 777 7a 6536 a718 7d.byte $7d, $63, $30, $88, $7e konst. 0. I 10932,13 für atn 6536 a 779 63 6536 a 7 7a 30 6536 a 7 Tb 88 6536 a 77c 7e 6537 a77d 7e. byte $7e, $92. $H, $99, $3a kons t. -0. 1'2839808 für atn 6537 a 71e 92 6537 a 77f H 6537 a 780 99 6537 a 781 Ja 6538 a782 7e.byte $7e, S,c, Sec, $9 I. Sc 7 kons t. 0. 19999912 für atn 6538 a 783 'c 6538 a 78' cc 6538 a 785 91 6538 a786 c7 6539 a 787 7f.byte $7f, Saa, $aa, $aa, $13 kons t. -00.333333316 für atn 6539 a 188 aa 6539 a 789 aa 6539 a 78a aa 6539 a 78b 13 65,0 a 78c 8 I. byte $8 I, $00, $00, $00, $00 konst. I für atn 6540 a 18d 00 65,0 a 78e 00 6540 a 18f 00 65,0 a 790 00 6541 a 79 I 65H a 79 I 650 a79 I ===> basic-routine atn fac=atn(faci <=== 65H a 79 I 65,5 79 I a5 76 atn lda facsgn fac II: vorzeichen 65H a793 H pha 65H a 79' 10 03 bpl atn I 6548 a 796 20 Ta a5 jsr negop basic-routine negation 65H 799 a5 71 a tn I lda facexp fac #1: exponent 6550 a79b 48 pha 6551 a 79c c9 8 I cmp #$8 I 6552 a79e 90 07 bcc atn2 6553 a 7a0 a9 9c lda #$9c 6554 a 7a2 ao 9f ldy #$9f 6555 a 7a4 20 e6 ao jsr fdiv holt wert in arg, fac arg I fac 6556 7. 7 a9 54 atn2 lda #$54

610/710 basic-math4 hard+soft ass/reass... seite 0137 zeile adr. obj.-code source-code 6557 a 7a9 ao a7 ldy l$a 7 6558 a 7ab 20 05 a6 jsr polyx polynom-auswertung 6559 a 7ae 68 pla 6560 a 7af c9 81 cmp 1$81 6561 a 7b 1 90 07 bcc atn3 6562 a7b3 a9 26 lda 1$26 6563 a 7b5 ao a7 ldy l$a 7 6564 a Tb 7 20 2d 9e jsr fsub konstante in arg, fac arg-fac 6565 a 7ba 68 atn3 pla 6566 a 7bb 10 61 bpl atn4 6567 a7bd 4c 7a a5 jmp negop basic-routine negation 6568 a rco 6569 a 7c0.end 6570 a 7c0.lib strngl

610/110 basic-strngl hard+soft ass/reass.... seite 013B zeile adr. obj.-code source-code 6572 a7c0 6573 a7c0 ===> basic-routine 'pudef <=== 6514 a TcO 6575 atco 20 b6 91 puctrl jsr savl3 65T6 a Tc3 20 T3 ba jsr mapinx umsch. auf bank II in $241 6577 a7c6 ab tay 65T8 a Tc T fo Of beq pucbye 6579 a7c9 co 04 cpy 1$04 65BO a Tcb 90 02 bcc puc50 6581 atcd ao 04 ldy 1$04 6582 a Tcf BB puc50 dey 65B3 a7d0 bl 22 puc60 lda lindexij,y addrl indirekter index II 6584 atd2 99 T3 02 sta pufill,y print using: füllzeichen 65B5 a Td5 BB dey 6586 atd6 10 fb bpl puc60 65BT a TdB 4c Be ba pucbye jmp mapusr ums eh. auf bank I I 658B atdb 6589 a Tdb 6590 atdb ===> basic-routine str$' <=== 6591 a Tdb 6592 atdb 20 04 b5 strd jsr chknum prüfen, ob numerische variable 6593 atde 20 e2 a3 jsr fout umw. gk-zahl in s tring I ablage ab $200} 6594 a Te I 6B pla 6595 a Te2 6B pla 6596 a Te3 ao 00 foutst ldy 1$00 659T a Te5 b9 00 02 stroio lda buf,y basic input-puffer l-$2ff} 659B a TeB fo 03 beq str020 6599 atea cb iny 6600 ateb do fb bne stroio 6601 a Ted 9B str020 tya 6602 a Tee 20 II ab jsr strspa adr./länge des s tring ablegen 6603 a Tfl 84 01 sty i6509 6509 indirection register 6604 atf3 ao 00 ldy 1$00 6605 a 7f5 b9 00 02 str030 lda buf,y basic input-puffer l-$2ff} 6606 a TfB fo 05 beq str040 660T a 7fa 91 Tl sta lfacexp},y fac II: exponent 6608 a Tfc cb iny 6609 a7fd do f6 bne str030 6610 a Tff 20 Be ba str040 jsr mapusr ums eh. auf bank # I 66 II ab02 4c 6c ab jmp putnew 6612 ab05 6613 ab05 6614 ab05 ===> berechnet stringzeiger <=== 6616 ab05 a6 T6 strini ldx facsgn fac "; vorzeichen 6617 abot 86 60 stx dscpnt+2 bank zeiger string descriptor 6615 ab05 661B ab09 a6 74 ldx facmo fac #1: mantisse 6619 ab Ob a4 75 ldy faclo fac #1: mantisse 6620 abod B6 5e stx dscpnt addrl zeiger string descr.ltemp.fac#3 6621 abof B4 5f sty dscpnt+! addrh zeiger string descr./temp.fac#3 6622 ab II 6623 ab II 6624 ab II ===> adr./länge des string ablegen <=== 6625 ab I! 6626 ab II 20 53 ad strspa jsr getspa platz für string reservieren, länge in ac

610/110 basic-strngl hard+soft ass/reass.... seite 0139 zeile adr. obj.-code souree-eode 6621 abi4 B5 70 sta dsetmp zeitweise deseriptoren-ablage 662B abi6 86 71 stx facexp fac II: exponent 6629 abib B4 12 sty facho fac II: mantisse 6630 ab Ia ao 02 ldy 11$02 6631 abic 84 73 sty facmoh fac 111: mantisse 6632 a81e 60 atn4 rts 6633 abif 6634 abif 6635 abif ===> sucht elemente von zeichenkette <=== 6636 abif 6631 abif H s trlit pha 663B ab20 a9 22 lda 11$22 6639 ab22 B5 Oe sta charae puffer fiir trennzeichen 6640 ab24 85 Od sta endehr puffer fiir trennzeichen 660 ab26 6B pla 6642 ab21 B5 7f strltz sta arisgn fac-arg ungepackt: Vorzeichenduplikat 66U abz9 B4 BO sty facov fae overflow-byte 66U ab2b B6 BI stx facov l fac overflow-byte 6645 a8zd 86 01 stx i6509 6509 indirection register 6646 abzf B5 71 sta facexp fac II: exponent 66H ab31 u 12 sty facho fac 111: mantisse 66H ab33 86 73 stx facmoh fac II: mantisse 66U ab35 B6 84 stx fbufpt+z bank zeiger fac-puffer lfout-rout.j 6650 ab37 ao ldy ll$ff 6651 a839 c8 " s trget iny 6652 ab3a bl 7f lda larisgn}. y fac-arg ungepackt: Vorzeichenduplikat 6653 a83c fo Oe beq s trfi I 6654 a83e e5 Oe emp charac puffer fiir trennzeiehen 6655 a840 fo 04 beq strfin 6656 a842 c5 Od cmp endehr puffer fiir trennzeichen 6651 a8h do f3 bne strget 6658 a846 c9 22 strfin cmp 11$22 6659 a848 fo 01 beq strfi2 6660 a84a IB strfi I clc 6661 1Ub 20 Be bl strfi2 jsr mapusr ums eh. auf blnk # I 6662 a84e 84 70 sty dsctmp zeitweise descriptoren-ablage 6663 a850 98 tya 6664 a851 65 7f adc arisgn fac-arg ungepackt: Vorzeichenduplikat 6665 1853 85 B2 st1 fbufpt addrl zeiger fac-puffer lfout-rout.} 6666 ab 55 a6 80 ldx facov fac overflow-byte 6667 1857 90 01 bcc strst2 6668 a859 e8 inx 6669 a85a 86 83 strst2 stx fbufpt+ I addrh zeiger fac-puffer lfout-rout. J 6670 ab Sc 9B ty1 6671 ab5d 20 05 ab jsr strini berechnet stringzeiger 6612 ab60 a2 02 ldx 1$02 6613 a862 b4 7f sotl ldy arisgn,x fac-arg ungepackt: Vorzeichenduplikat 66 74 ab64 94 22 sty index I. x addrl indirekter index 6675 a866 ca dex " 6616 a867 10 f9 bpl sotl 6617 a869 20 c4 ab glar jsr movdo 66 78 a86c., ld putnew ldy temmpt zeiger auf zeitw. stringdescriptor lrel. offset} 66 79 ab6e co Oe cpy #$Oe

610/710 basic-strngl hard+soft ass/reass.... seite 0140 zeile adr. obj.-code source-code 6680 a870 do 05 bne putnwl 6681 ab 72 a2 46 ldx #$46 6682 a874 4c 52 85 jmp error ind. jmp zur fehlerroutine 6683 a877 6684 a877 6685 a877 a9 02 putnwl lda #$02 6686 ab 79 85 01 sta i6509 6509 indirectian register 6687 a87b 85 76 sta facsgn fac #I: vorzeichen 6688 ab 7d a2 00 ldx #$00 6689 a87f b5 70 putnwl lda dsctmp,x zeitweise descriptoren-ablage 6690 abbi 91 20 sta ltempstl,y addrl für 3 temp. string-descriptoren 6691 a883 cb iny 6692 a884 eb inx 6693 a885 eo 04 cpx #$04 6694 a887 do f6 bne putnwl 6695 a889 20 Be ba jsr mapusr umsch. auf bank # 1 6696 ab Be a5 21 lda tempst+l addrh für 3 temp. string-descriptoren 6697 ab Be 85 75 sta faclo fac #I: mantisse 6698 a890 85 lf s ta lastpt+l addrh letzt benutzter string-descr. 6699 a892 18 clc 6700 a893 a5 20 lda tempst addrl für 3 temp. string-descriptoren 6701 a895 65 ld adc temmpt zeiger auf zeitw. stringdescriptor lrel. offset) 6 702 a897 85 74 sta facmo fac 111: mantisse 6703 a899 85 le sta lastpt addrl letzt benutzter string-descr. 6704 a89b 90 04 bcc putnw2 6705 a89d e6 75 inc faclo fac #I: mantisse 6706 a89f e6 lf inc lastpt+l addrh letzt benutzter string-descr. 6 707 aba 1 84 ld putnw2 sty temmpt zeiger auf zeitw. stringdescriptor lrel. offset I 6708 a8a3 ao 00 ldy 11$00 6709 a8a5 84 80 sty facov fac overflow-byte 6 710 a8a7 88 dey 6711 ab ab 84 11 sty valtyp flag für variablen typ IO=num, l=stringl 6 712 abaa 60 rts 6 713 ab ab 6 714 ab ab 6715 ab ab ===> string ablegen <=== 6 716 ab ab 6717 ab ab a5 81 movins lda facov+l fac overflaw-byte 6 718 abad 85 01 sta i6509 6509 indirection register 6 719 abaf ao 00 ldy #$00 6720 abbl bl 7f lda larisgnl,y fac-arg ungepackt: Vorzeichenduplikat 6 721 a8b3 aa tax 6722 a8b4 cb iny 6723 a8b5 bl 7f lda larisgn),y fac-arg ungepackt: Vorzeichenduplikat 6724 a8b7 85 22 sta indexl addrl indirekter index #I 6725 a8b9 cb iny 6 726 abba b 1 7f lda larisgn},y fac-arg ungepackt: Vorzeichenduplikat 6 72 7 abbc 85 23 sta indexl+l addrh indirekter index #I 6728 abbe cb iny

610/710 basic-strngl hard+soft ass/reass.... seite 0141 zeile adr. obj.-code source-code 6729 abbf bl 7f 6730 abcl B5 24 6731 abc3 Ba 6732 abc4 ab 6733 abc5 fo 12 6734 aber 48 6735 6736 6737 673B 6739 6 740 6741 6742 6743 67H 6745 6746 6747 6 74B 6749 6 750 6751 6 752 6753 abcb abca abcb abcd abcf abdl abd3 abd5 abd6 abdb abd9 abdc abdd abdf abel abe3 abe5 abe6 abe6 a2 02 BB a5 24 B5 01 b I 22 B6 01 91 3d 9B do f2 6B 20 Be ba IB 65 3d B5 3d 90 02 e6 Je 60 lda I arisgn), y sta indexl+2 txa movdo tay beq mvdone pha ldx 1$02 movlp dey lda indexl+2 sta i6509 lda lindexll,y stx i6509 sta lfrespcl,y tya bne movlp pla mvdone jsr mapusr clc adc frespc sta frespc bcc mvstrt inc frespc+ I mvstrt rts 6754 abe6 ===> alten string entfernen <=== 6755 abe6 6756 abe6 20 06 b5 frestr jsr chkstr 6 757 abe9 6 75B abe9 6759 abe9 ===> stringverwaltung, freier string <=== 6760 abe9 6761 a8e9 6 762 a8eb 6763 a8ed 6 764 a8ef 6765 abf2 6 766 a8h 6 767 a8f7 6 76B a8f9 6769 abfc 6770 abfd 6771 a8ff 6772 a900 6 773 a902 6774 a904 6 775 a906 6 776 a907 6 777 a909 6778 a90b 6 7 79 a90c 6780 a90d 6 781 a90f 6782 a911 6 783 a913 6784 a915 a5 74 a4 75 a6 76 20 H a9 do Je 20 33 aa 90 37 20 20 aa 48 49 ff 38 65 22 a4 23 bo 01 88 B5 22 84 23 aa 6B a4 24 co 02 do 5f a4 23 c4 Je frefac lda facmo ldy faclo ldx facsgn fretmp jsr savio bne fre02 jsr sadi2 bcc fre02 jsr mkgarb resoo pha eor l$ff sec adc indexl ldy indexl+l bcs resoo dey sta indexl sty indexl+l tax pla ldy index I +2 cpy 1$02 bne frerts ldy indexl l cpy fretop I fac-arg ungepackt: vorzeichenduplikat bank indirekter index II bank indirekter index II 6509 indirection register addrl indirekter index II 6509 indirection register addrl zeiger auf neuen string umsch. auf bank I addrl zeiger auf neuen string addrl zeiger auf neuen string addrh zeiger auf neuen string prüfen, ob stringvariable fac II: mantisse fac II: mantisse fac II: vorzeichen string-trailer eintragen: ungültiger string addrl indirekter index II addrh indirekter index II addrl indirekter index II addrh indirekter index II bank indirekter index II addrh indirekter index II addrh top of string free space I

610/710 basic-strng1 hard+soft ass/reass.... seite 0142 zeile adr. obj.-code source-code 6785 6786 6 787 6788 6789 6790 6791 6792 6793 a917 a919 a91b a91d a91e a91f a921 a923 a925 do 59 e4 3b do 55 48 18 65 3b 90 02 e6 3c 18 6794 a926 69 03 6795 a928 6796 a92a 6797 a92c 6 798 a92e 6799 a92f 6800 a930 6801 a930 85 3b 90 02 e6 Je 68 60 6802 a930 20 73 ba 6803 a933 ao oo 6804 a935 b1 22 6805 a937 48 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 a938 a939 a93b a93c a93d a93f a940 a94 1 a90 a945 a9h a94a a94b a94d 6822 a9h 6823 a94f 6824 a951 6825 a953 6826 a955 6827 a957 6828 a959 6829 a95b 6830 a95d 6831 a95f 6832 a961 6833 a963 6834 a965 6835 a967 6836 a969 6837 a96a cb b 1 22 48 cb b1 22 aa c8 b1 22 85 24 86 23 20 Be ba 68 85 22 68 85 22 84 23 86 24 eo 02 do 19 c4 1f do 15 c5 1e do 11 e9 04 85 1e bo 02 c6 1f 38 a5 1d 6838 a96c e9 04 6839 a96e 85 1d bne frerts cpx fretop bne frerts pha clc adc fretop bcc fre01 inc fretop+1 fre01 clc adc 1$03 sta fretop bcc frepla inc fretop+1 frepla pla rts fre02 jsr mapinx ldy 1$00 lda lindex11,y pha iny lda lindex1j,y pha iny lda lindex11,y tax iny lda lindex1),y sta index1+2 stx index1+1 jsr mapusr pla sta index1 pla rts sav10 sta index1 sty index1+1 stx index1+2 fretms cpx 1$02 bne frerts cpy lastpt+1 bne frerts cmp lastpt bne frerts sbc 11$04 sta lastpt bcs fret10 dec lastpt+1 fret10 sec lda temmpt sbc #$04 sta temmpt ldy #$00 addrl top of string free space addrl top of string free space addrh top of string free space addrl top of string free space addrh top of string free space umsch. auf bank II in $241 addrl indirekter index #1 addrl indirekter index #1 addrl indirekter index #1 addrl indirekter index #1 bank indirekter index #1 addrh indirekter index #1 umsch. auf bank # 1 addrl indirekter index #1 addrl indirekter index #1 addrh indirekter index #1 bank indirekter index #1 addrh letzt benutzter string-descr. addrl letzt benutzter string-descr. addrl letzt benutzter string-descr. addrh letzt benutzter string-descr. zeiger auf zeitw. stringdescriptor lrel. offsetl zeiger auf zeitw. stringdescriptor I rel. offse t I

610/710 basic-strngl hard+soft asslreass... seite 010 zeile adr. obj.-code source-code 6841 a972 60 frerts rts 6842 a973 6BO a973 6BH a973 a4 56 inpcom ldy lstpnt+2 bank zeiger letzter string 6B45 a9 75 co Of cpy l$0f 6846 a977 do 03 bne getspt 6847 a979 4C d6 ac jmp mktime interne uhrmit string stellen 6848 a97c 6B49 a9 Tc 6B50 a97c a4 76 getspt ldy facsgn fac II: vorzeichen 6B51 a97e co 02 cpy 1$02 6B52 a9bo do Oe bne dntcpy 6853 a9b2 a4 75 ldy faclo fac II: mantisse 6B54 a9b4 c4 Ja cpy strend+l addrh ende benutzter ram-bereich 6B55 a9b6 90 35 bcc copy string ins ram, gültig machen 6856 a9b8 do 06 bne dntcpy 6B57 a9ba a5 74 lda facmo fac #1: mantisse 6B5B a9bc c5 39 cmp strend addrl ende benutzter ram-bereich 6B59 a9be 90 2d bcc copy string ins ram, gültig machen 6B60 a990 a5 74 dntcpy lda facmo fac II: mantisse 6B61 a992 a4 75 ldy faclo fac II: mantisse 6B62 a994 a6 76 ldx facsgn fac II: vorzeichen 6B63 a996 85 5e sta dscpnt addrl zeiger string descr./temp.facl3 6B64 a99b 84 5f sty dscpnt+l addrh zeiger string descr./temp.facl3 6B65 a99a B6 60 stx dscpnt+2 bank zeiger string descriptor 6866 a99c 20 H a9 jsr savio 6867 a99f 20 33 aa jsr sadi2 6868 a9a2 90 03 bcc dcop02 6B69 a9a4 20 fc a9 jsr bcklnk string-trailer eintragen: rückwärtszeiget 6870 a9a 7 20 12 aa dcop02 jsr fixold 6B71 a9aa a6 56 ldx lstpnt+2 bank zeiger letzter string 6872 a9ac ao 03 ldy 1$03 6B73 a9ae 20 6e ba deopol jsr mapdsp ums eh. auf bank I# in $60} 6B 74 a9bl b I 5e lda {dscpnt},y addrl zeiger string descr./temp.facl3 6B75 a9b3 B6 0 I stx i6509 6509 indirection register 6B76 a9b5 91 54 sta llstpntl,y addrl zeiger letzter string 68 77 a9b7 BB dey 6B7B a9b8 10 f4 bpl deopol 6B 79 a9ba 4c Be ba jmp mapusr ums eh. auf bank # I 6BBO a9bd 68BI a9bd 68B2 a9bd ===> string ins ram, gültig machen <=== 68B3 a9bd 6BB4 a5 76 copy lda facsgn fac #1: vorzeichen 6509 indirection register 68B5 a9bd a9bf B5 01 sta i6509 68B6 a9cl ao 00 ldy #$00 6BB 7 a9c3 b I 74 lda {facmo}, y fac II: mantisse ba umsch. auf bank # 68B9 a9cb 20 05 ab jsr strini berechnet stringzeiger 6BBB a9c5 20 Be jsr mapusr 6890 a9cb a2 02 ldx #$02 6891 a9cd b4 5e soth ldy dscpnt, x addrl zeiger string descr./temp.facl3 6B92 a9cf 94 7f sty arisgn,x fac-arg ungepackt: Vorzeichenduplikat

610/710 basic-strngl hard+soft ass/reass.... seite 0144 zeile adr. obj.-code source-code 6B93 6B94 6B95 6B96 6B97 6B9B 6B99 6900 6901 6902 a9dl a9d2 a9d4 a9d7 a9d9 a9db a9dd a9e0 a9e3 a9e5 6903 a9e8 6904 a9eb 6905 a9ed 6906 a9ef 6907 a9fl 690B a9h 6909 a9f6 6910 a9f7 69" a9f9 6912 a9fc 6913 a9fc ca 10 f9 20 ab ab a5 7f a4 BO a6 BI 20 55 a9 20 6c aa 90 03 20 fc a9 20 I 2 aa ao 03 a5 56 B5 01 b9 70 00 9 I 54 BB 10 fb 4c Be ba dex bpl soth jsr movins lda arisgn ldy facov ldx facov+l jsr fretms jsr stradj bcc copy02 jsr bcklnk copy02 jsr fixold ldy 1$03 lda lstpnt+2 sta i6509 copyoi lda dsctmp,y sta (lstpntl,y dey bpl copyoi jmp mapusr string ablegen fac-arg ungepackt: Vorzeichenduplikat fac overflow-byte fac overflow-byte strings uber fretop: carry=l, länge=ac, zeiger > linkbytes string-trailer eintragen: rückwärtszeiger bank zeiger letzter string 6509 indirection register zeitweise descriptoren-ablage addrl zeiger letzter string umsch. auf bank I I 6914 a9fc ===> string-trailer eintragen: rückwärtszeiger <=== 6915 a9fc 6916 6917 691B 6919 6920 6921 6922 6923 6924 6925 6926 a9fc a9ff aaoi aa03 aa05 aa06 aaob aaoa aaob aaod aaof 20 73 ba ao 00 a5 54 9 I 22 cb a5 55 9 I 22 cb a5 56 9 I 22 4c Be ba bcklnk jsr mapinx ldy 1$00 lda lstpnt sta lindexll,y iny lda lstpnt+l sta lindexll,y iny lda lstpnt+2 sta lindexll.y jmp mapusr 6927 aal2 692B aal2 6929 aal2 6930 aa 14 6931 aal6 6932 aaib 6933 aal9 6934 aalb 6935 aale 6936 aa20 a2 02 b4 54 94 22 ca 10 f9 20 33 aa 90 45 fixold ldx 1$02 sump ldy lstpnt.x sty indexl,x dex bpl sump jsr sadi2 bcc fnk05 umsch. auf bank I# in $241 addrl zeiger letzter string addrl indirekter index II addrh zeiger letzter string addrl indirekter index II bank zeiger letzter string addrl indirekter index II umsch. auf bank # I addrl zeiger letzter string addrl indirekter index II 6937 aa20 693B aa20 ===> string-trailer eintragen: ungültiger string <=== 6939 aa20 6940 aa20 20 73 ba mkgarb jsr mapinx umsch. auf bank I# in $241 6941 aa23 ao 02 ldy #$02 6942 aa25 a9 ff lda #$ff 6943 aa27 9 I 22 sta lindexll,y addrl indirekter index #I 6944 aa29 BB dey 6945 aa2a 9 I 22 sta lindexll,y addrl indirekter index #I 6946 aa2c BB dey 6947 aa2d Ba txa

610/710 basic-strngl hard+soft ass/reass.... seite 0145 zeile adr. obj.-code source-code 6948 aa2e 91 22 sta lindexl),y addrl indirekter index #I 6949 aa30 ~c Be ba jmp mapusr umsch. auf bank # I 6950 aa33 6951 aa33 6952 aa33 20 73 ba sadi2 jsr mapinx ums eh. auf bank I# in $2~) 6953 aa36 ao 00 ldy #$00 6954 aa3b bl 22 lda lindexl),y addrl indirekter index #I 6955 aa3a ~B pha 6956 aa3b fo 29 beq sadib 6957 aa3d cb iny 695B aa3e bl 22 lda I index I J, y addrl indirekter index #I 6959 aa~o ~B pha 6960 aa41 cb iny 6961 aah bl 22 lda I index I J, y addrl indirekter index #I 6962 aah aa tax 6963 aah cb iny 6964 aa~6 bl 22 lda I index I J, y addrl indirekter index #1 6965 aau ab tay 6966 aa~9 20 Be ba jsr mapusr ums eh. auf bank # 1 6967 aa~c 6B pla 6968 aa~d c~ 19 sadi3 cpy dsdesc+3 bank disc-status string 6969 aa~f do OB bne sadi~ 6970 aa51 e~ 18 cpx dsdesc+2 addrh disc-status string 6971 aa53 do 0~ bne sadi~ 6972 aa55 c5 17 cmp dsdesc+l addrl disc-status string 6973 aa57 fo Od beq sadib 69H aa59 85 22 sadh sta indexl addrl indirekter index #1 6975 aa5b 86 23 stx index1+1 addrh indirekter index #I 6976 aa5d 84 2~ sty indexl+2 bank indirekter index #I 6977 aa5f 68 pla 697B aa60 aa tax 6979 aa61 20 IB ab jsr sav15 69BO aa64 3B sec 69B1 aa65 60 fnk05 rts 69B2 aa66 6983 aa66 6984 aa66 20 Be ba sadib jsr mapusr ums eh. auf bank # I 69B5 aa69 68 pla 69B6 aa6a IB clc 69B7 aa6b 60 rts 69BB aa6c 69B9 aa6c 6990 aa6c ===> strings Über fretop: carry= 1, länge=ac, zeiger > Linkbytes <=== 6991 aa6c 6992 aa6c a5 70 stradj lda dsctmp zeitweise descriptoren-ablage 6993 aa6e 48 pha 699~ aa6f fo f5 beq sadib 6995 aa 71 a5 71 lda facexp fac #1: exponent 6996 aa73 a6 72 ldx facho fac #1: mantisse 6997 aa 75 a~ 73 ldy facmoh fac #1: mantisse 699B aa77 ~c ~d aa jmp sadi3 6999 aa 7a 7000 aa 7a.end 7001 aa 7a.lib strng2

670/770 basic-strng2 hard+soft ass/reass... seite 0746 zeile adr. obj.-code source-code 7003 aa 7a 7004 aa 7a 7005 aa 7a 7006 aa 7a 700 7 aa 7c 700B aa 7d 7009 aa 7f 70 70 aabo 70 77 aab2 70 72 aab3 7073 70 74 70 75 aab6 aab9 aaba ===> string verketten <=== a5 76 48 a5 75 48 a5 74 48 20 ae 96 20 06 b5 6B B5 7f 7076 aabc 6B 70 77 70 7B 70 79 aabd aabf aa90 B5 BO 6B B5 B 7 7020 aa92 B5 07 702 7 aa94 ao oo 7022 aa96 b 7 7f 7023 7024 7025 7026 702 7 702B 7029 7030 703 7 7032 7033 7034 7035 7036 7037 703B aa9b aa9b aa9d aa9f aaal aaa4 aaa5 aaab aaaa aaad aaad aaad aabo aab3 aab6 aab9 7039 aabb 7040 aabd 7047 aabf 7042 aac2 700 aac5 7044 aacb 7045 aacb Bd 5b 02 a5 76 B5 07 b 7 74 20 Be ba 7B 6d 5b 02 90 03 4C B5 b 7 20 05 ab 20 ab ab 20 cb aa 20 c4 ab a5 7f a4 BO a6 B7 20 ef ab 20 6c ab 4c de 95 7046 aacb a5 5e 7047 aaca a4 5f 704B aacc a6 60 7049 7050 705 7 aace aad7 aadl 4c ef ab cat lda facsgn pha lda faclo pha lda facmo pha jsr eval jsr chkstr pla sta arisgn pla sta facov pla sta facov+7 sta i6509 ldy #$00 lda (arisgn),y sta ldaadr lda facsgn sta i6509 lda (facmoi,y jsr mapusr clc adc ldaadr bcc sizeok jmp errlen sizeok jsr strini jsr movins jsr sav4 7 jsr movdo lda arisgn ldy facov ldx facov 7 jsr fretmp jsr putnew jmp tstop ldy dscpnt 7 ldx dscpnt 2 jmp fretmp 7052 aad7 ===> basic-routine 'ehr$' <=== 7053 aad7 7054 aad7 20 d9 b4 chrd ]Sr conint fac #7: vorzeichen fac #7: mantisse fac #7: mantisse jmp: folgenden beliebigen ausdruck auswerten prüfen, ob stringvariable fac-arg ungepackt: vorzeichenduplikat fac overflow-byte fac overflow-byte 6509 indirection register fac-arg ungepackt: vorzeichenduplikat addrl modifiable adresse fac #7: vorzeichen 6509 indirection register fac #1: mantisse umsch. auf bank # 7 addrl modifiable adresse ausgabe '?string too long', ready berechnet stringzeiger string ablegen fac-arg ungepackt: Vorzeichenduplikat fac overflow-byte fac overflow-byte addrl zeiger string descr./temp.fac#j addrh zeiger string descr./temp.fac#3 bank zeiger string descriptor zahl < 256 aus akt. text nach xr

610/710 basic-strng2 hard+soft ass/reass.... seite 0147 zeile adr. obj.-code source-code 7055 aad4 Ba txa 7056 aad5 4B pha 7057 aad6 a9 01 lda 1$01 7058 aadb 20 ab jsr strspa adr./länge des string ablegen 7059 aadb 20 69 " ba jsr mapdst umsch. auf banl< I# in $731 7060 aade 6B pla 7061 aad+" ao 00 ldy #$00 7062 aael 9 I 71 sta (facexpl,y fac II: exponent 7063 aae3 20 Be ba jsr mapusr ums eh. au+" bank # 7064 aae6 6B pla 1065 aae7 68 pla 1066 aaeb 4c 6c ab jmp putnew 7067 aaeb 706B aaeb 7069 aaeb ===> basic-routine "le+"t$ <=== 7071 aaeb 20 70 ab leftd jsr pream stringadresse u. parameter vom stapel holen 1010 aaeb 1012 aaee 48 pha 7073 aaef 20 6e ba jsr mapdsp ums eh. auf banl< I# in $601 1014 aaf2 bl Se lda ldscpnt/,y addrl zeiger string descr./temp.fac#3 70 75 aah Bd Sb 02 sta ldaadr addrl modifiable adresse 7076 aah 6B pla 7077 aafb Cd Sb 02 cmp ldaadr addrl modifiable adresse 7078 aafb 9B tya 7079 aafc 90 04 rleft bcc rleft I 7080 aafe bl 5e lda (dscpnt},y addrl zeiger string descr./temp.fac#3 10BI aboo aa tax 7082 ab01 98 tya 7083 ab02 20 Be ba rleft1 jsr mapusr umsch. auf banl< # I 7084 ab05 48 pha 1085 ab06 Ba rleft2 txa 7086 ab07 48 rleft3 pha TOBT abob 20 II ab jsr strspa adr./länge des string ablegen 7088 ab Ob 20 cb aa jsr sav4 7 7089 ab Oe 68 pla 7090 abof ab tay 709 I abio 68 pla 7092 ab 11 20 18 ab jsr sav15 7093 abh 9B tya 7094 ab15 4c 69 ab jmp glar 1095 ab18 1096 abib 709 7 ab18 18 sav15 clc savl4 index1 addrl indirekter index II addrl indirekter index II 7098 7099 ab19 ablb 65 22 85 22 adc sta indek1 1100 abld 90 02 bcc sav16 7101 ablf e6 23 i.nc i.ndek1+1 addrh indirekter indek #I 7102 ab21 60 sav16 rts 1103 ab22 7104 ab22 7105 ab22 ===> basic-routine right$" <=== 1106 ab22 7107 ab22 20 70 ab rightd jsr pream stringadresse u. parameter vom stapel holen 1108 ab25 48 pha

610/710 basic-strng2 hard+soft ass/reass... seite 0148 zeile adr. obj.-code source-code 7109 7110 7111 7112 7113 7114 7115 ab26 ab29 ab2b ab2e ab2f ab30 ab33 20 6e ba b 1 5e Bd 5b 02 68 18 ed 5b 02 49 ff 7116 ab35 4c fc aa 711 7 ab38 7118 ab3b jsr mapdsp lda (dscpnt},y sta ldaadr pla clc sbc ldaadr eor l$ff jmp rleft 7119 ab38 20 29 ba sav17 jsr chrgot 7120 ab3b 7121 ab 3d 7122 ab3f 7123 ab42 7124 ab42 c9 29 fo 4e 4c cd b4 cmp 1$29 beq sav18 jmp combyt 7125 ab42 ===> basic-routine mid$' <=== 7126 ab42 7127 ab42 a9 ff midd 7128 ab44 85 75 7129 ab46 20 3B ab 7130 ab49 20 70 ab 7131 ab4c fo 5d 7132 7133 7134 7135 7136 7137 7138 7139 ab4e abh ab 50 ab51 ab 52 ab 53 ab 55 ab 58 ca Ba 48 4B 1B a2 00 20 6e ba b1 5e 7140 ab5a 7141 ab5d 7142 ab60 710 ab61 71H ab64 7145 ab66 7746 ab6b 7141 ab6a 7148 ab6c 7749 ab6e 7150 ab70 7151 ab70 20 Be ba 8d 5b 02 68 ed 5b 02 bo ao 49 ff c5 75 90 9b a5 75 bo 97 lda l$ff sta faclo jsr sav17 jsr pream beq gofuc dex txa pha pha clc ldx 1$00 jsr mapdsp lda (dscpntl,y jsr mapusr sta ldaadr pla sbc ldaadr bcs rleft2 eor l$ff cmp faclo bcc rleft3 lda faclo bcs rleft3 umsch. auf bank (# in $60} addrl zeiger string descr./temp.fac#3 addrl modifiable adresse addrl modifiable adresse letztes zeichen erneut nach ac (indirekter sprungl kommatest, holt 1byte in xr fac 11: mantisse stringadresse u. parameter vom stapel holen umsch. auf bank (I in $601 addrl zeiger string descr./temp.facl3 umsch. auf bank # 1 addrl modifiable adresse addrl modifiable adresse fac #1: mantisse fac 11: mantisse 7152 ab70 ===> stringadresse u. parameter vom stapel holen <=== 7153 ab70 7154 ab70 7155 ab73 7156 abh 715 7 ab75 715B ab76 7159 ab78 7160 7161 7162 ab79 68 ab7a 68 ab7b aa 20 2a 97 pream JST chkcls 6B pla ab 68 B5 62 68 tay pla sta jmper+1 pla pla pla tax test I, sonst fehler + ready addrl sprung zu functions-rout.

610/710 basic-strng2 hard+soft asslreass... seite 01'9 zeile adr. obj.-code source-code 7163 ab7c 68 pla 716, ab7d 85 5e sta dscpnt addrl zeiger string descr./temp.fac#3 7165 ab7f 68 pla 7166 abbo 85 5f sta dscpnt+l addrh zeiger string descr./temp.fac#3 716 7 ab82 68 pla 7168 ab83 85 60 sta dscpnt+2 bank zeiger string descriptor 7169 ab85 a5 62 lda jmper+l addrl sprung zu functions-rout. 7170 ab87 48 pha 7171 abbb 98 tya 7172 abb9 48 pha 71 73 ab Ba ao 00 ldy #$00 71H ab Be Ba txa 7175 abbd 60 savib rts 7176 ab Be 7177 ab Be 717B ab Be ===> basic-routine 'len <=== 7179 ab Be 71BO ab Be 20 9' ab len jsr lenl 71BI ab91 'c 37 9d jmp sngflt 7182 ab9' 71B3 ab9' 71B' ab9' 20 e6 ab lenl jsr frestr alten string entfernen 71B5 ab97 a2 00 ldx #$00 71B6 ab99 B6 II stx valtyp flag für variablen typ I O=num, l=stringl 71B 7 ab9b ab tay 71BB ab9c 60 rts 71B9 ab9d 7190 ab9d 7191 ab9d ===> basic-routine asc <=== 7192 ab9d 7193 ab9d 20 9' ab asc jsr lenl 71H abao fo 09 beq gofuc 7195 aba2 ao 00 ldy #$00 7196 aba' 20 df bo jsr savl2 719 7 aba 7 ab tay 719B abab 'c 37 9d jmp sngfl t 7199 ab ab 7200 ab ab 720 I ab ab 'c a7 9b gofuc jmp fcerr ausgabe '?illegal quantity error ready 7202 abae 7203 abae 720' abae ===> basic-routine 'val' <=== 7205 abae 7206 abae 20 9' ab val jsr lenl 720 7 abbl do 03 bne vall string auswerten 720B abb3 4c da 9e jmp zerofc fac auf 00 setzen 7209 abb6 7210 abb6 7211 abb6 ===> string auswerten <=== 7212 abb6 7213 abb6 a2 02 val T ldx #$02 72" abbb b~ 85 tryg ldy txtptr,x addrl zeiger auf akt. term 7215 abba 9~ 82 sty fbufpt,x addrl zeiger fac-puffer (fout-rout.j 7216 abbc ca dex

610/710 basic-strng2 hard+soft ass/reass..... seite 0150 zeile adr. obj.-code source-code 7217 abbd 10 f9 7218 abbf 7219 abcl 7220 abc3 722 I abc5 7222 abc 7 7223 abc9 7224 abca 7225 abcc 7226 abce 7227 abdo 7228 abd2 7229 7230 7231 7232 7233 7234 7235 7236 7237 abd4 abd5 abd7 abd9 abdb abdc abdd abdf abe2 7238 abe5 7239 abe8 7240 abeb 724 I abec 7242 abee 7243 abfo 72H abf3 7245 abf5 7246 abf7 724 7 abf9 7248 abfb 7249 abfd 7250 abff 60 725 I 7252 7253 a6 24 86 B7 B6 01 a6 22 B6 B5 18 65 22 B5 25 a6 23 B6 B6 90 01 eb B6 26 ao 00 bl 25 4B 9B 91 25 20 Be ba 20 29 ba 20 db a2 20 7d ba 6B ao oo 91 25 20 Be ba a6 B2 a4 B3 a5 H B6 B5 B4 B6 B5 B7 val2 bpl tryg ldx index I +2 stx txtptr+2 stx i6509 ldx indexl stx txtptr clc adc indexl sta index2 ldx i ndex I +I stx txtptr+l bcc val2 inx stx index2+1 ldy #$00 lda lindex21,y pha tya sta lindex21,y jsr mapusr jsr chrgot jsr fin jsr mapstr pla ldy #$00 sta lindex21.y jsr mapusr st2txt ldx fbufpt ldy fbufpt +I lda fbufpt+2 stx txtptr sty txtptr+ I sta txtptr+2 rts acoo acoo acoo ===> basic-routine 'err$ I x I ' <=== 7254 acoo 7255 acoo 68 7256 7257 7258 7259 7260 726 I 7262 7263 7264 acoi ac04 ac07 acoa acob acoc acoe acio acll 7265 7266 726 7 7268 7269 7270 72 7 I ac 14 acl6 acl9 aclb acle ac20 ac22 20 24 9 7 20 04 b5 20 d9 b4 Ba Oa c9 56 bo 9b ab b9 Bf B2 B5 25 b9 90 B2 B5 26 20 78 ba ao ff a2 00 cb errd pla jsr parchk jsr chknum jsr conint txa asl a cmp #$56 bcs gofuc tay lda ebase,y sta index2 lda ebase+l,y sta index2 1 jsr mapsys ldy #$ff ldx #$00 erf lp I iny bank indirekter index #I bank zeiger auf akt. term 6509 indirection register addrl indirekter index #I addrl zeiger auf akt. term addrl indirekter index #I addrl indirekter index #2 addrh indirekter index #I addrh zeiger auf akt. term addrh indirekter index #2 addrl indirekter index #2 addrl indirekter index #2 umsch. auf bank # I letztes zeichen erneut nach ac tindirekter sprungl umw. zahlenstring in gk-zahl umsch. auf bank # 2 addrl indirekter index #2 umsch. auf bank # I addrl zeiger fac-puffer lfout-rout. I addrh zeiger fac-puffer (fout-rout. I bank zeiger fac-puffer (fout-rout.l addrl zeiger auf akt. term addrh zeiger auf akt. term bank zeiger auf akt. term test I I. sonst fehler, ready prüfen, ob numerische variable zahl < 256 aus akt. text nach xr ind. sprungtabeile basic-/system Fehlermeldungen addrl indirekter index #2 ind. sprungtabeile basic-/system Fehlermeldungen addrh indirekter index #2 umsch. auf bank # 15

610/710 basic-strng2 hard+soft ass/reass.... seite 0151 zeile adr. obj.-code source-code 7272 ac23 bl 25 lda ( index2 J, y addrl indirekter index 12 1213 ac25 fo 07 beq errdl 7274 ac27 c9 20 cmp 1$20 12 75 ac29 90 fl bcc erflpl 7276 ac2b eb inx 7277 ac2c do H bne erflp I 72 lb ac2e Ba errdl txa 12 79 ac2f 20 II ab jsr strspa adr./länge des string ablegen 72BO ac32 ao ff ldy l$ff 72BI ac34 a2 00 ldx 1$00 72B2 ac36 cb erflp2 iny 72B3 ac37 20 7B ba jsr mapsys umsch. auf bank I 15 72B4 ac3a bl 25 lda ( index2 J, y addrl indirekter index 12 12B5 ac3c fo IB beq errd2 72B6 ac3e c9 20 cmp 1$20 72B 7 ac40 90 H bcc erflp2 72BB ac42 Be 5b 02 sty ldaadr addrl modifiable adresse 72B9 ac45 48 pha 7290 ac46 Ba txa 7291 ach ab tay 7292 ac48 6B pla 7293 ac49 20 69 ba jsr mapdst ums eh. auf bank (I in $7 3 J 7294 ac4c 91 71 sta ( facexp), y fac #I: exponent 1295 ac4e 9B tya 7296 ac4f aa tax 7297 ac50 ac 5b 02 ldy ldaadr addrl modifiable adresse 7298 ac53 eb inx 1299 ac54 do eo bne erflp2 7300 ac56 20 Be ba errd2 jsr mapusr ums eh. auf bank # I 130 I ac59 4c 6c ab jmp putnew 7302 ac5c 7303 ac5c 7304 ac5c ===> interne uhrzeit nach ti$ <=== 1305 ac5c 7306 ac5c de ff gettim jsr krdtim 20 interne uhr ablesen 130 7 ac5f 48 pha l30b ac60 29 7f and #$7f 7309 ac62 B5 07 sta tmsec zeit sekunden für ti$-berechnung 7310 ac64 9B tya 7311 ac65 29 9f and #$9f 7312 ac67 OB php 7313 ac6b 29 lf and #$1f 7314 ac6a c9 12 cmp #$12 7315 ac6c do 02 bne ge t t i I 7316 ac6e a9 00 lda #$00 73 I 7 ac 70 28 getti I plp 7318 ac71 10 07 bpl lkt50 7319 ac 73 7B sei 7320 ac74 fb sed 7321 ac75 IB clc 7322 ac76 69 12 adc #$12 7323 ac 7B db cld 7324 ac79 58 cli 7325 ac7a B5 05 lkt50 sta tmhour zei t stunden für ti$-berechnung 7326 ac Tc a9 00 lda #$00 732 7 ac 7e 85 OB sta tmten zei t "1/10-sek. für ti$-berechnung 732B acbo 98 tya 7329 acbi 2a rol a

610/710 basic-strng2 hard+soft ass/reass.... seite 0152 zeile adr. obj.-code source-code 7330 acb2 733 I acb3 7332 acb5 7333 acb6 7334 acbb 7335 acb9 7336 acba 733 7 acbc 733B acbd 7339 acbf 7340 ac90 7341 ac91 7342 ac93 730 ac95 2a 26 OB 2a 26 OB Ba 2a 26 OB u B5 06 6B 2a 26 OB a9 OB 20 53 ad 73H ac9b B6 22 7345 ac9a B4 23 7346 ac9c ao 02 734 7 ac9e B4 24 734B acao B4 01 7349 aca2 ab 7350 aca3 BB 7351 aca4 7352 aca6 7353 acab 7354 aca9 7355 acab 7356 acac 7357 acae a9 00 9 I 22 BB a5 OB 18 69 30 9 I 22 BB a2 02 b5 05 735B acbo 7359 acbl 7360 acb3 7361 acb5 4B 7362 acb6 29 Of 7363 acbb 18 7364 7365 7366 736 7 7368 7369 7370 7371 7372 73 73 7374 7375 7376 7377 7378 73 79 7380 738 I 7382 acb9 acbb acbd acbe acbf accl acc2 acc3 acc4 acc5 acc7 acc9 acca accb accd accf acdl acd3 acd6 acd6 69 30 9 I 22 BB 68 29 70 4a 4a u 4a 69 30 9 I 22 88 ca 10 e6 a5 22 a4 23 a6 24 4c 1f ab gti 70 rol a rol tmten rol a rol tmten txa rol a rol tmten lsr a sta tmmin pla rol a rol tmten lda #$08 jsr getspa stx indexl sty indexl+l ldy #$02 sty indexl+2 sty i6509 tay dey lda #$00 sta lindexl},y dey lda tmten clc adc #$30 sta (indexij,y dey ldx #$02 lda tmhour,x pha and #$0f clc adc #$30 sta (indexij,y dey pla and #$70 lsr a lsr a lsr a lsr a adc #$30 sta (indexij,y dey dex bpl gti70 lda indexl ldy indexl+l ldx indexl+2 jmp strlit zeit '1/10-sek. für ti$-berechnung zeit 1/10-sek. für ti$-berechnung zei t 'II 10-sek. ' für ti$-berechnung zeit 'minuten' für ti$-berechnung zeit 1/10-sek.' für ti$-berechnung platz für string reservieren, länge in ac addrl indirekter index #I addrh indirekter index #I bank indirekter index #I 6509 indirection register addrl indirekter index #I zeit '1/10-sek.' für ti$-berechnung addrl indirekter index #I zeit 'stunden' für ti$-berechnung addrl indirekter index #I addrl indirekter index #I addrl indirekter index #I addrh indirekter index #I bank indirekter index #I sucht elemente von zeichenkette 7383 7384 acd6 ===> interne uhr mit string stellen <=== 7385 acd6 73B6 acd6 20 e9 ab mktime jsr frefac stringverwaltung, freier string

610/710 basic-strng2 hard+soft ass/reass... seite 0153 zeile adr. obj.-code source-code 7387 acd9 48 7388 7389 7390 7391 7392 7393 7394 acda acdc acde aceo ace2 ace4 ace6 7395 ace9 Oa 7396 acea Oa 7397 aceb Oa 7398 acec 7399 aced 7400 acfo HOl acf3 7402 acf6 1403 acf9 H04 HOS H06 H07 HOB H09 HIO Hll 7"2 Hl3 HIS "" 7"6 74 17 7"8 7"9 1420 H21 1422 1423 7424 7425 7426 1427 1428 H29 700 701 702 7433 704 7435 706 707 7438 709 7HO 7HI acfa acfc acfe acff adoi ad03 ad06 adob adoa adoc adoe adio adl2 adl3 adl4 adl6 ad 17 adib adla adle adle ad20 ad21 ad23 ad24 ad26 ad28 ad29 ad2b ad2c ad2e ad30 ad31 ad33 ad34 ad35 ad37 ad38 c9 06 fo 04 c9 07 do 6e ao oo 84 82 20 3d ad Oa 99 OS 00 20 3d ad 19 05 00 99 05 00 cb co 03 do eb 68 c9 06 fo OS 20 3d ad do 02 a9 00 85 OB a5 05 c9 12 90 Oa 18 fb e9 12 db 58 09 80 85 05 a9 00 66 OB 6a 05 01 48 a9 00 66 OB 6a OS 06 a9 00 66 OB 6a 66 OB 6a 4a 05 05 ab 68 7HZ ad39 18 7H3 adja 4c db ff HH ad3d pha cmp #$06 beq mktmb cmp #$07 bne fcerr2 mktmb ldy #$00 sty fbufpt mktiio jsr timnum asl a mktmc mktmd asl a asl a asl a sta tmhour.y jsr timnum ora tmhour,y sta tmhour,y iny cpy #$03 bne mktiio pla cmp #$06 beq mktmc jsr timnum bne mktmd lda #$00 sta tmten lda tmhour cmp #$12 bcc mktiso sei sed sbc #$12 cld cli ora #$80 sta tmhour mkti50 lda #$00 ror tmten ror a ora tmsec pha lda #$00 ror tmten rar a ora tmmin tax lda lt$00 ror tmten ror a ror tmten ror a lsr a ora tmhour tay pla clc ]mp kstt~m addrl zeiger fac-puffer (fout-rout. I zeit "stunden für ti$-berechnung zei t zei t 'stunden für ti$-berechnung stunden für ti$-berechnung zeit '1/10-sek. für ti$-berechnung zeit 'stunden für ti$-berechnung zeit "stunden für ti$-berechnung zeit '1/10-sek. für ti$-berechnung zeit 'sekunden für ti$-berechnung zeit 1/ 10-sek. für ti$-berechnung zei t "minuten' für ti$-berechnung zeit 1/10-sek. für ti$-berechnung zeit "1/10-sek. für ti$-berechnung zeit "stunden für ti$-berechnung interne uhr stellen

670/770 basic-strng2 hard+soft ass/reass.... seite 0154 zeile adr. obj.-code source-code 7H5 adjd 7H6 7H7 7HB 7H9 7450 7451 7452 745J 7454 adjd adjf ad47 ado ad46 ad49 ad4b ad4d adh 84 BJ a4 82 e6 82 20 df bo 20 50 ba bo 05 e9 2f a4 BJ 60 timnum sty fbufpt+l ldy fbufpt inc fbufpt jsr sav72 jsr qnum bcs fcerr2 sbc tl$2f ldy fbufpt+l rts addrh zeiger fac-puffer (fout-rout. I addrl zeiger fac-puffer (fout-rout.j addrl zeiger fac-puffer lfout-rout. I test inhalt ac numerisch addrh zeiger fac-puffer (fout-rout.j 7455 ad50 7456 ad50 7457 ad50 4c a7 9b fcerr2 jmp fcerr ausgabe "?illegal quantity error, ready 7458 ad5j 7459 ad5j 7460 ad5j ===> platz für string reservieren, länge in ac <=== 7461 ad53 7462 746J 7464 7465 7466 746 7 7468 7469 7470 7471 7472 747J 7474 ad53 ad55 ad56 ad58 ad59 ad5b ad5c ad5e ad60 ad62 ad64 ad65 ad6 7 46 IJ aa fo 4c 48 a5 3b 38 e9 03 a4 Je bo OJ fo 41 88 85 22 84 23 74 75 ad69 Ba 7476 ad6a 49 ff 7477 7478 7479 7480 7481 7482 ad6c ad6d ad6f ad77 ad74 ad75 7483 7484 7485 7486 7490 7491 7492 7493 7~ 9~ 7495 7496 7497 ad17 ad7a ad7b ad7d ad7f ad87 ad83 ad85 ad87 ad89 ad8c ad8e ad90 ad92 ad93 38 65 22 bo Oa Bd 5b 02 98 fo 2e ad 5b 02 88 c4 Ja 90 26 do 04 c5 39 90 20 85 3d 84 3e 20 7d ba ao 02 a9 ff 91 22 88 91 22 getspa lsr dores tryag2 tax beq getrts pha lda fretop sec sbc tl$03 ldy fretop+1 bcs tryag3 beq garbag dey tryagj sta index1 sty index1+1 txa eor l$ff sec adc index1 bcs tryag4 sta ldaadr tya beq garbag lda ldaadr dey tryag4 cpy strend+1 bcc garbag bne tryag5 cmp strend bcc garbag tryag5 sta frespc sty frespc+1 jsr mapstr ldy tl$02 lda l$ff sta lindex1j,y dey sta lindex11,y flag für token o. ascii/garbage-flag addrl top of string free space addrh top of string free space garbage collect fungültige strings entfernen) addrl indirekter index 11 addrh indirekter index #1 addrl indirekter index 11 addrl modifiable adresse garbage collect fungültige strings entfernen) addrl modifiable adresse addrh ende benutzter ram-bereich garbage collect (ungültige strings entfernen) addrl ende benutzter ram-bereich garbage collect fungültige strings entfernen! addrl zeiger auf neuen string addrh zeiger auf neuen string umsch. auf bank # 2 addrl indirekter index #1 addrl indirekter index #1

610/710 basic-strng2 hard+soft ass/reass.... seite 0155 zeile adr. obj.-code source-code 1498 ad95 74 99 ad96 7500 ad9 7 750 I ad99 7502 ad9c 7503 ad9e 7504 adao 7505 ada2 7506 ada4 7507 ada5 7508 ada5 88 68 91 22 20 Be ba a6 3d a4 Je 86 3b 84 Je 60 dey pla sta lindexl},y jsr mapusr ldx frespc ldy frespc+l stx fretop sty fretop+l getrts rts addrl indirekter index t umsch. auf bank # I addrl zeiger auf neuen string addrh zeiger auf neuen string addrl top of string free space addrh top of string free space 7509 ada5 o==> garbage collect (ungültige strings entfernen} <o== 7510 ada5 75 II 7512 7513 7514 7515 7516 7517 7518 ada5 ada 7 ada9 adac adad adaf adbo adb2 a5 13 30 09 20 b5 ad 38 66 13 68 do a3 4c 50 85 garbag lda dores bmi grbg99 jsr garba2 sec ror dores pla bne tryag2 grbg99 jmp omerr flag für token o. ascii/garbage-flag garbage collect lmüll entfernen} flag für token o. ascii/garbage-flag 7519 adb5 7520 adb5 7521 adb5 ===> garbage collect lmüll entfernen} <==o 7522 adb5 7523 adb5 a9 02 garba2 lda #$02 7524 adb7 85 01 sta i6509 7525 adb9 a5 ld lda temmpt 7526 adbb 7527 adbd 7528 adbe 7529 adcl 1530 adc2 753 I adc3 7532 7533 1534 7535 7536 1537 7538 7539 adc5 adc7 adc9 adcb adcc adce addo addl fo lc 48 la ZO a f ae 98 18 65 20 ao 00 91 6a a5 21 c8 91 6a a9 02 c8 9 I 6a 7540 add3 68 7541 7542 add4 add5 38 e9 04 7543 add7 do e4 75H add9 ao oo 7545 addb 84 64 7546 addd a5 Jf 7547 addf a4 40 naa beq naa pha jsr slr I tya clc adc tempst ldy #$00 sta llowdsl,y lda tempst+l iny sta (lowds},y lda #$02 iny sta llowdsl,y pla sec sbc #$04 bne la ldy #$00 sty highds lda memtop ldy memtop+l ausgabe "?out of memory error ready 6509 indirection register zeiger auf zeitw. stringdescriptor I rel. offset I addrl für 3 temp. string-descriptoren addrl zielanfang!verschieben}/ temp. fac#z addrh für 3 temp. string-descriptoren addrl zielanfang (verschieben}/ temp.fac#z addrl zielanfang!verschieben}/ temp. fac#2 addrl zielende (verschieben)/ temp.fac#l addrl höchste ram-speicherstelle addrh höchste ram-speicherstelle

610/710 basic-strng2 hard+soft ass/reass.... seite 0156 zeile adr. obj.-code source-code 7HB adel 85 6d sta lowtr addrl ursprunganfang (verschieben!/ temp. fac#2 7549 ade3 85 5b s ta defpnt addrl zeiger funkt.-def./ temp.fac#3 1550 ade5 85 3d sta frespc addrl zeiger auf neuen string 7551 adet 84 6e sty lowtr+l addrh ursprunganfang (verschieben} temp.fac#2 1552 ade9 84 5c sty defpnt+l addrh zeiger funkt.-def.l temp.fac#3 7553 adeb 84 Je sty frespc+l addrh zeiger auf neuen string 7554 aded 20 56 ae gloop jsr chkgrb trailer-tes t, ob string ungültig 7555 adfo do Of bne colo I 7556 adf2 ao 00 colooa ldy #$00 7557 adf4 20 Td ba jsr mapstr umsch. auf bank # 2 7558 adf7 bl 5b lda (defpntl,y addrl zeiger funkt. -def. I temp.fac#3 7559 adf9 20 cb ae jsr movpnt zeiger für garb. coll. stellen 7560 adfc 38 sec 756' adfd 66 64 ror highds addrl zielende (verschieben}/ temp. fac#l 7562 adff do ec bne gloop 7563 aeoi 24 64 coloi bit highds addrl zielende (verschieben}/ temp. fac#l 7564 ae03 10 38 bpl col03 gültige strings Überspringen 7565 ae05 a2 00 ldx #$00 1566 aeot 86 64 stx highds addrl zielende (verschieben!/ temp. fac#l 7561 ae09 1568 ae09 7569 ae09 ===> gültigen string über ungültigen kopieren <=== 7570 ae09 7511 ae09 ao 02 col02 ldy #$02 7572 aeob 20 7d ba jsr mapstr umsch. auf bank # 2 1573 aeoe bl 5b col02a lda (defpntl,y addrl zeiger funkt.-def./ temp. fac#3 7574 aeio 9' 6d s ta (lowtr},y addrl ursprunganfang (verschieben!/ temp.fac#2 1575 ael2 88 dey 1576 ael3 10 f9 bpl col02a 1571 ael5 20 43 ae jsr sa v 7 7578 aeib Ba txa 7519 ael9 ab tay 1580 aela 20 7d ba jsr mapstr umsch. auf bank # 2 1581 aeld 88 glop I dey 7582 aele bl 5b lda (defpntl,y addrl zeiger funkt.-def./ temp.fac#3 7583 ae20 9' 6d sta (lowtr},y addrl ursprunganfang (verschieben!/ temp.fac#2 1584 ae22 ca dex 7585 ae23 do fb bne glopl 7586 ae25 20 13 ba jsr mapinx umsch. auf bank (# in $241 758 7 ae28 ao 02 ldy #$02 7588 ae2a b9 6c 00 col02b lda lowds+2,y bank zielanfang (versch. II exp.basisio 7589 ae2d 9' 22 sta (indexl},y addrl indirekter index #I 7590 ae2f 88 dey 1591 ae30 do fb bne col02b 7592 ae32 a5 5b lda defpnt addrl zeiger funkt.-def./ temp.fac#3 7593 ae34 a4 5c ldy defpnt+l addrh zeiger funkt. -def. I temp.fac#3 7594 ae36 20 56 ae jsr chkgrb trailer-test. ob string ungültig 1595 ae39 fo b7 beq colooa 1596 ae3b do cc bne col02 gulugen string Über ungültigen kopieren

610/710 basic-strng2 hard+soft ass/reass.... seite 0157 zeile adr. obj.-code source-code 7597 ae3d 7598 ae3d 7599 ae3d ===> gültige strings überspringen <=== 7600 ae3d 7601 ae3d 20 43 ae col03 jsr sav7 7602 ae40 4c ed ad jmp gloop 7603 ae43 7604 ae43 7605 ae43 ao 00 sav7 ldy 1$00 7606 ae45 20 73 ba jsr mapinx umsch. auf bank II in $241 760 7 ae48 bl 22 lda I indexl I, y addrl indirekter index #I 7608 ae4a aa tax 7609 ae4b 20 d7 ae jsr movtop 7610 ae4e 85 3d sta frespc addrl zeiger auf neuen string 7611 ae50 84 Je sty frespc+l addrh zeiger auf neuen string 7612 ae52 Ba txa 7613 ae53 4c cb ae jmp movpnt zeiger für garb. coll. stellen 7614 ae56 7615 ae56 7616 ae56 ===> trailer- tes t, ob string ungültig <=== 76 I 7 ae56 7618 ae56 c4 Je chkgrb cpy fretop+l addrh top of string free space 7619 ae58 90 2b bcc cfre4 7620 ae5a do 06 bne cfre I 7621 ae5c c5 3b cmp fretop addrl top of string free space 7622 ae5e fo 25 beq cfre4 7623 ae60 90 23 bcc cfre4 7624 ae62 24 64 cfrel bit highds addrl zielende (verschieben I/ temp. facll 7625 ae64 30 05 bmi cfre2 7626 ae66 a9 03 lda 1$03 762 7 ae68 20 d7 ae jsr movtop 7628 ae6b a9 03 cfre2 lda 1$03 7629 ae6d 20 cb ae jsr movpnt zeiger für garb. coll. stellen 7630 ae70 ao 02 ldy #$02 7631 ae72 20 7d ba jsr mapstr umsch. auf bank " 2 7632 ae75 bl 5b lda ldefpntl,y addrl zeiger funkt.-def./ temp. facij 7633 ae77 c9 ff cmp ll$ff 7634 ae79 do 0 I bne cfre3 7635 ae 7b 60 rts 7636 ae7c 7637 ae 7c 7638 ae7c bl 5b cfre3 lda (defpnt I, y addrl zeiger funkt.-def./ temp.facl3 7639 ae 7e 99 22 00 sta index I, y addrl indirekter index II 7640 ae81 88 dey 7641 ae82 10 f8 bpl cfre3 7642 ae84 60 rts 7643 ae85 76H ae85 7645 ae85 a5!d cfre4 lda temmpt zeiger auf zeitw. stringdescriptor I rel. offset I 7646 ae87 fo 18 beq naa2 müll beseitigt, fretop eintragen 7647 ae89 48 fa pha 7648 aeba 20 af ae jsr slr! 7649 ae8d b I 20 lda ltempstl,y addrl für 3 temp. string-descriptoren 7650 aebf ao 00 ldy #$00 7651 ae91 91 6a sta llowdsl,y addrl zielanfang I verschieben}/ temp.facl2

610/710 basic-strng2 hard+soft ass/reass.... seite 015B zeile adr. obj.-code source-code 7652 ae93 7653 ae94 7654 ae96 7655 ae9b 7656 ae99 765 7 ae9b 765B ae9c 7659 ae9d 7660 ae9f 7661 aeal 7662 aea 1 cb a9 ff 91 6a cb 91 6a 6B 3B e9 04 do eb iny lda 1$ff sta (lowds),y iny sta (lowds),y pla sec sbc 1$04 bne fa 7663 aeal :::> müll beseitigt. fretop eintragen (::: 7664 aea 1 7665 aeal 20 Be ba naa2 jsr mapusr 7666 aea4 6B pla 7667 aea5 6B pla 766B aea6 a5 3d lda frespc 7669 aeab a4 3e ldy frespc+t 7670 aeaa B5 3b sta fretop 7671 aeac B4 3c sty fretop+l 76 72 aeae 60 rts 7673 aeaf 7674 aeaf 7675 76 76 76 77 76 7B aeaf aebo aebl aeb2 ab BB BB b 1 20 1679 aeb4 B5 6b 76BO aeb6 BB 76B1 aeb7 bl 20 76B2 aeb9 BS 6a 76B3 aebb 88 7684 aebc bl 20 7685 aebe 7686 aebf 7687 aect 7688 aec3 7689 aec5 7690 aec 7 60 7691 aecb 7692 aec8 18 65 6a 85 6a 90 02 e6 6b slr 1 slr2 tay dey dey lda (tempstj,y sta lowds+l dey lda ltempst}.y sta lowds dey lda ltempst}.y clc adc lowds sta lowds bcc slr2 inc lowds+l rts 7693 aec8 :::> zeiger für garb. coll. stellen (::: 76 9' aec8 7695 7696 aec8 aeca 49ff 3B movpnt eor #$ff sec 769 7 aecb 6S Sb adc defpnt 7698 aecd a' Sc ldy defpnt 1 7699 aecf bo 01 bcs movdo addrl zielanfang (verschieben)/ temp. facl2 addrl zielanfang (verschieben)/ temp. facl2 umsch. auf b1nk # 1 addrl zeiger auf neuen string addrh zeiger auf neuen string addrl top of string free space addrh top of string free space addrl für 3 temp. string-descriptoren addrh zielanfang lversch.j/ bytes vor dez.punkt addrl für 3 temp. string-descriptoren addrl zielanfang /verschieben}/ temp.fac#2 addrl für 3 temp. string-descriptoren addrl zielanfang (verschieben}/ temp. facl2 addrl zielanfang (verschieben}/ temp.fac#2 addrh zielanfang (versch. }/ bytes vor dez.punkt addrl zeiger funkt.-def./ temp.fac#j addrh zeiger funkt. -def./ temp.fac#j

610/710 basic-strng2 hard+soft ass/reass.... seite 0159 zeile adr. obj.-code source-code 7700 aed I 88 770 I aed2 7702 aed4 7703 aed6 7704 aed7 7705 aed7 85 5b 84 5c 60 7706 aed7 49 ff 770 7 aed9 38 7708 aeda 65 6d 7709 aedc a4 6e 7710 aede 7711 aeeo 7712 aeel bo 01 88 85 6d 7713 aee3 84 6e movoo dey sta defpnt sty defpnt+7 rts movtop eor l#$ff sec adc lowtr mov07 ldy lowtr+7 bcs movoi dey sta lowtr sty lowtr+7 7714 aee5 60 rts 7715 aee6 7716 aee6 7717 aee6 4c a7 9b infcer jmp fcerr 7718 aee9 7779 aee9 7720 aee9 ===> basic-routine instring <=== 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 aee9 aee9 aeeb aeed aefo aefl aef3 aef6 aef9 aefb aefd afoo afo I af03 af05 af07 afoa afod afof 7740 afll 7741 afl2 7142 afh 770 afl6 77H af19 a2 02 b5 74 9d ao 02 ca 70 f8 20 c I 95 20 06 b5 a2 02 b5 74 9d a3 02 ca 10 f8 a2 07 86 75 20 38 ab 20 2a 9 7 a6 75 fo d5 ca 86 73 a2 05 bd ao 02 95 64 7745 aflb ca 7746 af7c 10 f8 7747 afle a5 66 7748 7749 7750 af20 af22 a f24 85 0 I ao 03 b7 64 incopo ldx #$02 incopl lda facmo,x sta tmpdes,x dex bpl incopl jsr frmevl jsr chkstr ldx 1#$02 incop2 lda facmo,x sta tmpdes+3,x dex bpl incop2 ldx #$0 7 stx faclo jsr savl7 jsr chkcls ldx faclo beq infcer dex stx facmoh ldx #$05 inst2 lda tmpdes,x sta highds,x inst3 dex bpl inst2 lda highds 2 sta i6509 ldy #$03 lda I highds I, y addrl zeiger funkt.-def./ temp.facl#3 addrh zeiger funkt. -def./ temp.facl#3 addrl ursprunganfang lverschiebenll temp. facl#2 addrh ursprunganfang (verschieben} temp. faclt2 addrl ursprunganfang (verschieben}/ temp.facl#2 addrh ursprunganfang (verschieben} temp. fac#2 ausgabe "?illegal quantity error", ready fac 1#1: mantisse temp. speieher "instr$" auswertung beliebiger ausdruck prüfen, ob stringvariable fac #7: mantisse temp. speieher "instr$" fac 1#1: mantisse test" I, sonst fehler +ready fac 1#1: mantisse fac 1#1: mantisse temp. speieher "instr$' addrl zielende (verschieben}/ temp. fac#l bank zielende (verschieben/ temp. fac#l 6509 indirection register addrl zielende (verschieben}/ temp.fac#l

610/710 basic-strng2 hard+soft asslreass... seite 0760 zeile adr. obj.-code source-code 7751 af26 99 6a 00 7752 af29 7753 af2a 775' af2c 7755 af2e 7756 af30 7757 af32 7758 af3' 88 10 f8 a5 69 85 01 ao 03 b1 67 99 6e 00 7759 af37 88 7760 af38 10 f8 7767 af3a a5 6e 7 762 7763 7764 7765 7 766 af3c af3e aho ah2 afh fo 39 a5 6d 85 01 a9 00 85 " 7767 ah6 18 7768 af'7 a5 6e 7769 ah9 65 73 7770 af'b bo 2a 7777 af'd c5 6a 7772 af'f 90 02 7773 af51 do 2' 7774 af53 ' H 7775 af55 c' 6e 7776 7777 7778 7779 7780 7781 7782 7 783 778, 7785 7786 778 7 7788 7789 7790 7791 7792 7793 779' 7795 7796 779 7 7798 af57 af59 af5a af5b af5d af5e af60 af62 af64 af66 af68 a f6a af6c af6e af70 af72 afh af76 af77 af79 af7a af7d afbo fo 19 98 18 65 73 ab b 1 6b 85 72., " b 1 6f c5 72 fo 0' e6 73 do d' e6 H do e1 e6 73 a5 73 2c a9 00 '8 ad a3 02 ac a' 02 ae a5 02 inst' inst5 sta lowds,y dey bpl inst3 lda hightr+2 sta i6509 ldy 1$03 lda I hightri, y sta lowtr+1,y dey bpl inst4 lda lowtr+1 beq instnf lda lowtr sta i6509 lda 1$00 sta facmo clc lda lowtr+ 1 adc facmoh bcs instnf cmp lowds bcc inst6 bne instnf inst6 ldy facmo cpy lowtr+1 beq instfd tya clc adc facmoh tay lda (lowds+1),y sta facho ldy facmo lda I lowtr+2 I, y cmp facho beq inst7 inc facmoh bne inst5 inst7 inc facmo bne inst6 instfd inc facmoh lda facmoh.byte $2c instnf lda 1$00 pha lda tmpdes+3 ldy tmpdes+' ldx tmpdes+5 addrl zielanfang (verschieben!/ temp. facl2 bank ursprungende (verschieben} 6509 indirection register addrl ursprungende (verschieben}/ temp. faclt addrh ursprunganfang (verschieben) temp. facl2 addrh ursprunganfang (verschieben) temp.facl2 addrl ursprunganfang (verschieben)/ temp.facl2 6509 indirection register fac 11: mantisse addrh ursprunganfang (verschieben} temp.facl2 fac 11: mantisse addrl zielanfang (verschieben}/ temp. facl2 fac 11: mantisse addrh ursprunganfang (verschieben) temp. facl2 fac 11: mantisse addrh zielanfang lversch.)/ bytes vor dez.punkt fac 11: mantisse fac 11: mantisse bank ursprunganfang (verschieben)/ vorz.exp. fac 11: mantisse fac 11: mantisse fac 11: mantisse fac 11: mantisse fac 11: mantisse temp. speieher "instr$" temp. speieher "instr$" temp. speieher "1nstr$"

610/710 basic-strng2 hard+soft ass/reass.... seite 0161 zeile adr. obj.-eode souree-code 7799 af83 20 ef ab jsr fretmp 7800 af86 ad ao 02 lda tmpdes temp. speieher instr$ 7BO I afb9 ae a I 02 ldy tmpdes+l temp. speieher 'instr$' 7B02 afbe ae a2 02 ldx tmpdes+z temp. speieher 'instr$' 7B03 af8f 20 ef ab jsr fretmp 7B04 af9z 20 Be ba jsr mapusr ums eh. auf bank I I 1B05 af95 6B pla 7806 af96 ab tay 7BO 7 af97 4c 37 9d jmp sngflt 7BOB af9a 7B09 af9a.end 7810 af9a.lib delete

510/710 basic-delete hard+soft ass/reass.... seite 0152 zeile adr. obj.-code source-code 1812 1813 1814 7815 7816 af9a af9a af9a af9a af9d ===> ausgabe "?syntax error ready <=== 4c 4f 97 nrange jmp snerr 7817 af9d 7818 af9d ===> besic-routine 'delete' <=== 7819 af9d 1820 7821 7822 1823 1825 1826 182 7 1828 1829 1830 1831 1832 1833 1834 af9d af9f afa2 afa 4 afa6 afa8 afaa afac afaf afbl afb3 afb5 afb6 afb7 afb9 fo fb 20 H af fo f6 a5 6d a5 6e 85 25 86 26 20 1f 8 7 90 12 ao 01 bl 6d 88 aa do 04 b I 6d 1835 afbb fo 06 1836 afbd b1 6d 1831 afbf 85 6d 7838 afc 1 86 6e 1B39 afc3 a5 25 7840 afc5 3B 7841 afc5 e5 6d 7842 afcb aa 1B43 afc9 a5 26 7B44 afcb e5 6e TBU afcd 1846 afce 184 7 afdo 1B48 afdl 1849 TB 50 TB 51 afd2 afd4 afd6 ab bo 21 Ba 1B 65 Zf B5 2f 9B 1B52 afdl 65 30 7B53 afd9 B5 30 7B54 afdb ao 00 1B55 afdd 20 Be ba 7B56 afeo bl 6d 1851 afe2 91 25 7B5B afe' cb 1859 afe5 do f6 delete beq nrange jsr range beq nrange lda lowtr ldx lowtr+1 sta index2 stx index2+1 jsr fndlin bcc del300 ldy 1$0 I lda (lowtrl,y dey tax bne noteos lda (lowtrl,y beq del300 noteos lda (lowtr],y sta lowtr stx lowtr+l del300 lda index2 sec sbc lowtr tax lda index2+ I sbc lowtr+ I tay bcs notdel txa clc adc txtend sta txtend tya adc txtend+1 sta txtend+l ldy tt$00 del500 jsr mapusr lda I lowtr I, y sta (index2j,y iny bne del500 ausgabe '?syntax error ready ausgabe '?syntax error', ready zeilenbareich einlesen, test gültig ausgabe '?syntax error', ready addrl ursprunganfang (verschiebenl/ temp.factt2 addrh ursprunganfang (verschieben] temp.factt2 addrl indirekter index tt2 addrh indirekter index 12 startadr. von prg.zeile berechnen addrl ursprunganfang (verschieben]/ temp. factt2 addrl ursprunganfang lverschiebenl/ temp. facl2 addrl ursprunganfang (verschieben]/ temp.facl2 addrl ursprunganfang (verschieben]/ temp.facl2 addrh ursprunganfang (verschieben/ temp. factt2 addrl indirekter index 12 addrl ursprunganfang (verschieben// temp, fac#2 addrh indirekter index tt2 addrh ursprunganfang (verschieben/ temp.factt2 addrl zeiger ende addrl zeiger ende addrh zeiger ende addrh zeiger ende basic-text basic-text basic-text basic-text umsch, auf bank # addrl ursprunganfang (verschieben// temp. fact2 addrl indirekter index 12

670/770 basic-delete hard+soft ass/reass... sei te 0763 zeile adr. obj.-code source-code 7860 afe 7 e6 6e inc lowtr+7 addrh ursprunganfang (verschieben} temp.facl2 786 7 afe9 e6 26 inc index2+7 addrh indirekter index 12 7862 afeb a5 30 lda txtend+7 addrh zeiger ende basic-text 1863 afed c5 26 cmp index2+7 addrh indirekter index 12 7864 afef bo ec bcs del500 7865 aff7 4c 9b 86 notdel jmp fini linkadr. berechnen, ready 7866 afh 786 7 afh 7868 afh ===> Zeilenbereich einlesen, tes t gültig <=== 1869 afh 7870 afh 90 09 range bcc rng700 78 7 7 aff6 fo 01 beq rng700 78 72 affb c9 ab cmp #$ab 78 73 affa fo 03 beq rng700 7874 affc a9 00 rngerr lda 1$00 78 75 affe 60 rts 78 76 afff 78 77 afff 78 78 afff 20 Be ba rng700 jsr mapusr ums eh. auf bank # 7 7879 b002 20 4e Bd jsr linget Zeilennummer lesen, in adressformat umwandeln 1880 b005 20 7f 87 jsr fndlin startadr. von prg.zeile berechnen 788 7 boob 20 29 ba jsr chrgot letztes zeichen erneut nach ac (indirekter sprungl 1882 boob fo Oe beq rng200 7883 bood c9 ab cmp #$ab 7884 boof do eb bne rngerr 7885 bo 77 20 26 ba jsr chrget nächstes zeichen nach ac lind.jmpj 7886 bo 74 20 4e Bd jsr linget zeilennummer lesen, in adressformat umwandeln 788 7 b071 do e3 bne rngerr 7888 b079 a5 7b rng200 lda linnum lo-byte akt. zeilennummer 1889 b07b 05 7c ora linnum.,.1 hi-byte akt. zeilennummer 7890 b07d do 06 bne rngrts 789 I boif a9 ff lda l$ff 7892 b027 85 7b sta linnum lo-byte akt. zeilennummer 1893 b023 85 7c sta linnum+7 hi-byte akt. zeilennummer 7894 b025 60 rngrts rts 1895 b026 7896 b026.end 789 7 b026.lib using

610/710 basic-using hard+soft ass/reass..... seite 0164 zeile adr. obj.-code source-code 7899 7900 7901 7902 1903 7904 7905 7906 790 7 7908 7909 7910 7911 7912 7913 7914 7915 b026 b026 b026 b026 b028 b02b b02e b031 b034 b036 b037 b039 b03a b03c b03d b03f b041 7916 b043 aa 7917 bou 88 7918 boh 7919 7920 7921 7922 7923 7924 7925 7926 792 7 7928 1929 1930 7931 7932 7933 7934 1935 1936 boh boh boh boh bou b04a b04b b04d b050 b052 b053 b055 b056 b058 b05a b05c b05d b05f ===> basic-routine "printusing" <=== a2 ff Be 12 02 20 26 ba 20 cl 9S 20 06 b5 a5 H u a5 75 u a5 76 u 85 01 ao 03 bl H using ldx Sff stx endfd jsr chrget jsr frmevl jsr chkstr lda facmo pha lda faclo pha lda facsgn pha sta i6509 ldy So3 lda (facmo/,y tax dey ===> pu-stringzeiger in formatzeiger <=== 99 09 00 ldform sta form,y bl H lda lfacmoj,y 88 10 fb Bd 71 02 86 01 ab fo Oa dey bpl ldform sta lfor stx i6509 tay beq ser 88 cncj dey bl 09 c9 23 fo 06 98 do f6 4c 4f 97 ser lda I form/, y cmp S23 beq cscol tya bne cncj jmp snerr 193 7 b06z 1938 b062 7939 b062 ===> test 7940 b062 7941 b062 a9 3b cscol lda S3b 7942 b064 20 32 97 eex2 jsr synchr 7943 79H 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 b061 b069 b06c bo&f" b071 b073 b076 b079 b07c b07e b080 bobi 84 8b Sc 5f az 20 c I 95 24 II 10 3b zo a5 b2 ZO ea b3 ae 67 02 fo 16 az OD 38 ad 6d OZ print using: zeiger auf ende feld nächstes zeichen nach ac lind.jmpl auswertung beliebiger ausdruck prüfen, ob stringvariable fac II: mantisse fac #I: mantisse fac II: vorzeichen 6509 indirection register fac II: mantisse addrl format-zeiger fac 11: mantisse pu-stringzeiger in Formatzeiger print using: länge formatstrings 6509 indirection register addrl format-zeiger test im printusing-string <=== sty parsts sty bnr jsr frmevl bi t val typ bpl conv jsr ini jsr anaf ldx chsn beq prcha ldx 1$00 sec lda cform im printusing-string ausgabe "?syntax error', ready test:folgt ascii o. token im akt. text, sonst error das analyse-byte I print using: zeiger auf beginn auswertung beliebiger ausdruck flag für variablen typ IO=num, l=stringl print using: justify flag print using: zeichen zahler (feldl

610/710 basic-using hard+soft ass/reass... seite 0165 zeile adr. obj.-code source-code 7955 bob4 ed 5e 02 7956 b0b7 90 Ob 7957 bob9 a2 3d 795B bobb 7959 bobe 7960 b090 7961 b091 7962 b093 7963 b094 7964 b096 7965 b097 7966 7967 796B 7969 7970 79 7 I 7972 7973 79 7 4 7975 79 76 79 7 7 7978 79 79 79BO b099 b09a b09c b09e boa I b0a3 b0a6 boa 7 boaa boac boae bobl b0b4 b0b7 boba ec 67 02 do 03 4a 69 00 sbc hulp bcc prcha ldx #$3d cpx chsn bne schsl lsr a adc #$00 tax aa schs I ao 00 prcha ldy #$00 Ba chx txa fo 05 beq cpef ca dex a9 20 oblk lda #$20 do 09 bne outc cc 5e 02 cpef cpy hulp bo f7 bcs oblk 20 df bo jsr savl2 cb iny 20 e3 b3 outc jsr cdout do ea bne chx fo Oe beq reay 20 e2 a3 conv jsr fout 20 e3 a 7 20 a5 b2 20 e7 bo 20 29 ba 79BI bobd c9 2c 79B2 bobf fo a3 79B3 boc I 3B 79B4 boc2 66 Bb 79B5 b0c4 20 ea b3 79B6 boc 7 6B 79B 7 bocb aa 79BB b0c9 6B 79B9 boca ab 7990 bocb 6B 799 I 7992 7993 bocc bocf b0d2 7994 b0d5 7995 b0d7 7996 b0d9 799 7 bodc 799B 7999 BOOO BOOI B002 B003 bodc bodc bodf bodf bodf 20 Be ba 20 ef ab 20 29 ba c9 3b fo 03 4c cb Be 4c 26 ba 20 73 ba b0e2 bl 22 B004 b0e4 4c Be ba B005 boe 7 B006 boe 7 B007 b0e7 BOOB boea 8009 boed ad 73 02 Bd 6f 02 a9 ff reay nocr sa v I 2 fform jsr foutst jsr ini jsr fform jsr chrgot cmp #$2c beq eex2 sec ror parsts jsr anaf pla tax pla tay pla jsr mapusr jsr fretmp jsr chrgot cmp #$3b beq nocr jmp ocrlf jmp chrget jsr mapinx lda I index I I. y jmp mapusr lda pufill sta blfd lda #$ff print using: zähler print using: justify flag print using: zähler ausg. I pu-char. decrement zähler umw. gk-zahl in string Iablage ab $200) letztes zeichen erneut nach ac tindirekter sprung) dos analyse-byte I umsch. auf bank # I letztes zeichen erneut nach ac tindirekter sprung) ausgabe er l+lfl auf akt. kanal nächstes zeichen nach ac lind.jmpl umsch. auf bank I# in $241 addrl indirekter index II umsch. auf bank # I print using: FÜllzeichen print using: blank/stern flag

610/710 basie-using hard+soft ass/reass.... seite 0166 zeile adr. obj.-eode source-code BOIO boef BOl I b0f2 BOI2 b0f3 BOI3 b0f5 BO 14 bofb BOI5 bofa BOI6 bofd BOI7 bofe BOIB bioo BOI9 bl02 B020 bl04 B021 bl06 B022 biob B023 bioa B024 bioe B025 bioe B026 b" I B027 bl" B02B bl 15 B029 bll7 B030 b "9 Bd 6e 02 2e B6 Be ec 5e 02 fo 33 b9 00 02 cb e9 20 fo f3 e9 2d fo e9 e9 2e fo e9 e9 45 fo II 9d 00 02 Be 60 02 eb 24 Be 10 de ee 66 02 B031 B032 b lle bllf 'e f5 bo B033 bllf B034 bllf b9 00 02 B035 B036 bl22 bl24 c9 2d do 03 B037 bl26 6e 6' 02 B03B bl29 eb B039 bl2a Be 65 02 B040 bl2d a5 Be B04 I bl2f 10 02 B042 bl31 B6 Be BOO bl33 20 ea b3 BOH bl36 ad 68 02 B045 bl39 c9 ff B046 bl3b fo 29 BOH bl3d ad 6b 02 BO'B b 140 fo Jf BOH bl42 ad 65 02 B050 b145 do 12 B051 bih ae 60 02 B052 b Ha 20 71 b2 B053 bl4d de 02 02 BOH bl50 e8 B055 bl51 Be 65 02 B056 bl54 20 02 bj B057 bl57 fo 25 B05B bl59 ae 6a 02 B059 bl5e do I 7 B060 bl5e ac 6e 02 B061 bl61 30 12 B062 bl63 ad 68 02 B063 bl66 ana stp insy lsg nomn eoa rtts ete sta sno.byte $2c stx parstx cpy hulp beq eoa lda buf,y iny emp 1$20 beq insy cmp 1$2d beq ana emp l$2e beq stp emp 1$45 beq Isg sta buf,x stx enr inx bit parstx bpl insy inc vn jmp insy lda buf,y cmp 1$2d bne nomn ror usgn iny sty uexp lda parstx bpl rtts stx parstx jsr anaf lda vf cmp l$ff beq erst lda fesp beq cff lda uexp bne ete ldx enr jsr et2 dec buf+2,x inx stx uexp jsr alg beq hup ldy posp bne sswe ldy sno bmi sswe lda vf 806, b166 8065 bl66 ===> ungültiger wert, feldausg. mit <=== 8066 bl66 print using: vorzeichen nummer dos analyse-byte 2 print using: zähler basic input-puffer l-$2ff} basic input-puffer l-$2ffl print using: zeiger auf ende dos analyse-byte 2 print using: anzahl stellen vor dezimalpunkt basic input-puffer l-$2ff} print using: Vorzeichen exponent print using: zeiger auf exponent dos analyse-byte 2 dos analyse-byte 2 print using: # position vor dez.pkt. ungultiger wert, feldausg. mit print using: exponent flag (feldl print using: zeiger auf exponent print using: ze~ger auf ende basic input-puffer l-$2ff} +2 print using: zeiger auf exponent print us~ng: +/- flag (feld) print us~ng: print us~ng: vorzeichen nummer # position vor dez.pkt.

610/710 basic-using hard+soft ass/reass.... seite 0167 zeile adr. obj.-code source-code BD67 BD6B BD69 BD7D bl66 bi6b bl6b bl6d fd 69 ce 6B 02 dd OS ad 69 02 BD71 bi7d fd Sf BD72 bl72 ee 63 02 B073 bi7s 20 e9 bl BD14 bi7b 20 cd b2 BD7S bl7b 20 e9 b I BD76 bl7e 4c 3B b3 BD77 bibi BD7B bibi BD79 BDBD bibi bib4 ac 6S 02 fd 16 BDBI bib6 Bd Se 02 BDB2 bib9 3B BDB3 biba 6e 6c 02 BD84 bibd a4 Be BOBS bibf ad 64 02 BDB6 bl92 10 OS BDB7 bl94 20 23 b2 BDBB bl97 fd 11 BDB9 bl99 20 04 b2 BD9D bl9c a4 Be BD91 bl9e fd Da BD92 blad 20 06 b3 8093 bla3 dd OS BD94 blas ce 66 02 erst rspa sswe hup cff no4 ftf beq errf dec vf bne rspa lda nf beq errf inc swe jsr shpn jsr uround jsr shpn jmp chout ldy uexp beq ftf sta hulp sec ror etof ldy parstx lda usgn bpl no4 jsr nos3 beq rndd jsr nos4 ldy parstx beq rndd jsr cho bne rndd dec vn BD9S blaß bd 03 bcs devn2 8096 blaa 20 cd b2 rndd jsr uround 8097 blad 38 devn2 sec 8098 blae ad 68 02 lda vf 8099 blbl ed 66 02 sbc vn BIDD BIO I 8102 8103 BID4 BIDS 8106 8107 8108 BID9 8110 Bll1 blb4 blb6 blb9 blbc blbe biet blc3 blc4 blc6 blc7 blc9 blcc 90 Tb Bd 63 02 ac 6a 02 dd Tb ac 6e 02 30 16 ab fd Ob BB dd 13 ad 69 02 Dd 66 02 bcc errf sta swe ldy posp bne ahp ldy sno bmi ahp tay beq errf dey bne ldvn lda nf ora vn Bl12 8113 Bl14 blcf dd ad bldl bldl bne hup 811S bldl ===> ausgabefeldmit füllen <=== 8116 bldl 8117 bldl a9 2a errf BIIB bld3 20 e3 bj staut 8119 bld6 dd fb lda #$2a jsr cdout bne staut ausgabefeldmit füllen print using: # position vor dez.pkt. print using: # position nach dez. pkt. ausgabefeldmit füllen print using: zähler ausgabezahl runden print using: zeiger auf exponent print using: zähler print using: switch dos analyse-byte 2 print using: vorzeichen exponent dos analyse-byte 2 print using: anzahl stellen vor dezimalpunkt ausgabezahl runden print using: # position vor dez.pkt. print using: anzahl stellen vor dezimalpunkt ausgabefeldmit füllen print using: zähler print using: +/- flag (feld} print using: vorzeichen nummer ausgabefeldmit füllen print using: # position nach dez.pkt. print using: anzahl stellen vor dezimalpunkt ausg. I pu-char, decrement zähler

610/710 basic-using hard+soft ass/reass... seite 016B zeile adr. obj.-code source-code Bl20 bldb 60 8121 bld9 Bl22 bld9 8123 bld9 ab ahp 8124 blda fo a2 8125 bldc ad 66 02 ldvn 8126 bldf do 9d Bl27 blel ce 63 02 BI2B ble4 e6 8b 8129 ble6 4c 7e bl Bl30 ble9 Bl31 ble9 Bl32 ble9 Bl33 blea 8134 bled 3B ad 6B 02 ed 66 02 shpn Bl35 blfo fo 3b Bl36 blf2 a4 Be Bl37 bih 90 IB 813B blf6 Bd 5e 02 Bl39 blf9 cc 60 02 incy Bl40 blfc fo 02 Bl41 blfe bo 01 Bl42 b200 cb ity Bl43 b201 ee 66 02 nosl B144 b204 20 3a b2 nos4 Bl45 b207 ce 5e 02 Bl46 b20a do ed B 14 7 b20c fo ld B14B b20e 49 ff pntl B149 b210 69 01 BI 50 Bl51 BI 52 Bl53 BI 54 b212 b215 b21b b21a b21b Bd 5e 02 cc 5f 02 fo 05 BB ce 66 02 decy Bl55 Bl56 Bl57 BI5B Bl59 Bl60 Bl61 Bl62 Bl63 Bl64 Bl65 Bl66 Bl67 BI6B Bl69 6170 Bl71 Bl72 Bl73 b21e b21f b221 b223 b226 b229 b22b b22d b22e b22e b22e b230 b232 b235 b236 bz39 b23a b23a b23a 2c e6 Bb a9 BO 20 3c b2 ce 5e 02 do ea B4 Be 60 do 39 49 09 9d 00 02 ca ec 65 02 60 a9 00 inz nos3 poi t rdy sexp eado rts tay beq hup lda vn bne hup dec swe inc parsts jmp hup sec lda vf sbc vn beq rdy ldy parstx bcc pntl sta hulp cpy enr beq ity bcs nosl iny inc vn jsr eado dec hulp bne incy beq poit eor #$ff adc #$01 sta hulp cpy bnr beq inz dey dec vn. byte $2c inc parsts lda #$BO jsr eadj dec hulp bne decy sty parstx rts bne retrn eor #$09 sta buf,x dex cpx uexp rts lda #$00 print using: anzahl stellen vor dezimalpunkt print using: zähler dos analyse-byte 1 print using: # position vor dez.pkt. print using: anzahl stellen vor dezimalpunkt dos analyse-byte 2 print using: zähler print using: zeiger auf ende print using: anzahl stellen vor dezimalpunkt print using: zähler print using: zähler print using: zeiger auf beginn print using: anzahl stellen vor dezimalpunkt dos analyse-byte print using: zähler dos analyse-byte 2 basic input-puffer l-$2ff} print using: zeiger auf exponent

610/710 basic-using hard+soft ass/reass... seite 0169 zeile adr. obj.-code source-code BIH BI 75 8 I 76 BI 77 8 I 78 BI 79 8180 BIBI BIB2 BIB3 BIB4 b23c b23f b240 b20 b245 b248 b24a b24d b250 b252 b255 Bl85 b255 BIB6 b255 8187 b25b 8188 b25b 8189 b25d 8190 b260 8191 b262 8192 b265 Bl93 b267 B194 b269 8195 b26a 8196 b26b 8197 b26c 819B 8199 B200 8201 8202 8203 8204 B205 b26c b26c b26f b271 b2 74 b276 b279 b27b B206 b27e 60 B207 b27f B20B b27f B209 B210 B2" B212 b27f b2b2 b2b5 b2b7 B213 B2" B215 B216 B217 B21B B219 B220 B221 B222 B223 B224 B225 B226 B227 B22B B229 B230 B231 b2bb b2bb b2bb b2b9 b2ba b2bc b2bf b291 b293 b295 b29b b29b b29c b29c b29c b29c b29c b29e b2a0 ae 65 02 eb 2c 6c 02 30 10 4d 64 02 fo Ob 20 7f b2 20 2e b2 bo fb 4c 5e 9f bd 00 02 de 00 02 c9 30 20 2e b2 bo f3 2c 6c 02 10 05 84 Be 6B 6B 60 ad 64 02 49 BO Bd 64 02 a9 30 9d 01 02 a9 3 I 9d 02 02 bd 00 02 fe 00 02 c9 39 60 IB cb fo 05 cc 7 I 02 90 04 a4 Bb do d4 20 9c b2 ee 6d 02 60 eadj tagl tag2 retrn et3 et2 tag3 ldx uexp inx bit etof bmi tag2 eor usgn beq tag2 jsr tag3 jsr sexp bcs tag I jmp overr lda buf,x dec buf,x cmp /1$30 jsr sexp bcs tag2 bit etof bpl et3 sty parstx pla pla rts lda usgn eor #$BO sta usgn lda 11$30 sta buf+l,x lda #$3 I sta buf+2,x rts lda buf,x inc buf,x cmp /1$39 rts an sub clc iny beq ansoio cpy lfor bcc ans020 ansoio ldy parsts bne retrn ans020 jsr savl inc cform rts ===> bank formatstring nach i6509 <=== a5 Ob B5 01 b I 09 sa v I lda form+2 sta i6509 lda (form},y print using: zeiger auf exponent print using: switch print using: vorzeichen exponent ausgabe "?overflow error", ready basic input-puffer l-$2ff} basic input-puffer l-$2ff} print using: switch dos analyse-byte 2 print using: vorzeichen exponent print using: vorzeichen exponent basic input-puffer l-$2ff} +I basic input-puffer l-$2ff} +2 basic input-puffer l-$2ff} basic input-puffer l-$2ff} print using: länge formatstrings dos analyse-byte I bank formatstring nach i6509 print using: zeichen zähler lfeld} bank format-zeiger 6509 indirection register addrl format-zeiger

610/710 basic-using hard+soft ass/reass.... seite 0170 zeile adr. obj.-code source-code B232 b2a2 4c Be ba B233 b2a5 B234 b2a5 B235 B236 B237 B23B B239 B240 B241 B242 B243 B2H B245 B2H B247 b2a5 b2ab b2ab b2ad b2af b2b2 b2b3 b2b5 b2bb b2ba b2bd b2be b2bf 20 e9 ab Bd 5e 02 a2 Oa a9 00 9d 63 02 ca 10 fa Be 62 02 B6 Be Be 61 02 aa ab 60 B24B b2c0 B249 b2c0 ini stz jmp mapusr jsr frefac sta hulp ldx #$0a lda #$00 sta swe,x dex bpl stz stx flag stx parstx stx dolr tax tay rts B250 b2c0 ===> ausgabezahl runden <=== B251 b2c0 B252 b2c0 1B uround clc B253 B254 b2c1 b2c3 a5 Be 6d 69 02 lda parstx adc nf B255 b2c6 bo 39 bcs rrts B256 b2c8 38 sec 8257 b2c9 e5 Bb sbc parsts B258 b2cb 90 34 bcc rrts B259 B260 B261 8262 b2cd b2d0 b2d2 b2d4 cd 60 02 fo 02 bo 2d cd 5f 02 cbn cmp enr beq cbn bcs rrts cmp bnr 8263 B264 8265 8266 B26 7 b2d7 b2d9 b2da b2dd b2df 90 28 aa bd 00 02 c9 35 90 20 bcc rrts tax lda buf,x cmp #$35 bcc rrts 8268 b2e1 ec 5f 02 con1 cpx bnr 8269 b2e4 fo Oa beq add1 8270 b2e6 ca dex B2 71 B272 8273 b2e 7 b2ea b2ed 20 7f b2 Be 60 02 fo f2 jsr tag3 stx enr beq con1 B2H b2ef 60 rts B275 b2f0 8276 b2f0 8277 b2f0 ===>zahl <1 aufrunden auf '1 <=== 8278 b2f0 8279 b2f0 a9 31 add1 8280 b2f2 9d 00 02 82B1 B2B2 8283 8284 8285 8286 b2f5 b2f6 b2fb b2fa b2fc b2fe e8 86 Be c6 Bb 10 05 e6 8b ee 66 02 8287 b301 60 rrts lda #$31 sta buf,x inx stx parstx dec parsts bpl rrts inc parsts inc vn rts umsch. auf bank # 1 stringverwaltung, freier string print using: zähler print using: zähler print using: komma flag dos analyse-byte 2 print using: dollar flag dos analyse-byte 2 print using: # position nach dez. pkt. dos analyse-byte 1 print using: zeiger auf ende print using: zeiger auf beginn basic input-puffer (-$2ffl print using: zeiger auf beginn zahl <1 aufrunden auf 1' print using: zeiger auf ende basic input-puffer (-$2ffl dos analyse-byte 2 dos analyse-byte das analyse-byte print using: anzahl stellen vor dezimalpunkt

610/710 basic-using hard+soft asslreass... seite 0171 zeile adr. obj.-code source-code B2BB B2B9 B290 B291 B292 B293 B294 b302 b302 b302 b304 b306 b309 b309 a4 Be fo 17 ac 5f 02 alg cho ldy parstx beq szer ldy bnr B295 b309 ===> buffer mit o vergleichen <=== B296 b309 B297 B29B B299 B300 b309 b30c b30e b30f b9 00 02 c9 30 60 cmo lda buf,y cmp #$30 rts B301 b30f B302 B303 B304 B305 B306 b30f b311 b3" b317 b31a e6 Be 20 3a b2 ee 5f 02 cc 60 02 fo e5 nbr inc parstx jsr eado inc bnr cpy enr beq rrts B307 b31c cb iny B30B b31d B309 b31d B310 b31d ===> o' in zahl suchen <=== B311 b31d B312 b31d 20 09 b3 szer jsr cmo B313 b320 fo ed beq nbr B3" b322 60 rts B315 b323 B316 b323 B317 b323 B31B b326 B319 b32b B320 b329 B321 b32c B322 b32d B323 b32f B324 b332 B325 b335 B326 b33 7 B327 b33b B32B b33b B329 b33b B330 b33b B331 b33d B332 b33f ec 60 02 lzer fo 05 eb telx bd 00 02 2c a9 30 zout 4e 62 02 outs 20 e3 b3 out do Of 60 ad 61 02 30 02 e6 Bb ae 5f 02 cpx enr beq zout inx lda buf, x.byte $2c lda #$30 lsr flag jsr cdout bne afrm rts chout lda dolr bmi choutz inc parsts choutz ldx bnr B333 b342 ca dex B334 b343 ac 70 02 B335 b346 20 9c b2 afrm B336 b349 cb iny B337 b34a c9 2c B33B b34c do 11 B339 b34e 2c 62 02 B340 b351 30 06 B341 b353 ad 74 02 B342 b356 4c 32 b3 B343 B3H B345 b359 b359 b359 ad 6f 02 bout ldy begfd jsr sav1 cmp #$2c bne punt bi t flag bmi baut lda pucoma jmp out lda blfd das analyse-byte 2 o in zahl suchen print using: zeiger auf beginn basic input-puffer (-$2ff) das analyse-byte 2 print using: zeiger auf beginn print using: zeiger auf ende buffer mit o vergleichen print using: zeiger auf ende basic input-puffer (-$2ff) print using: komma flag ausg. 1 pu-char, decrement z~hler print using: dollar flag das analyse-byte 1 print using: zeiger auf beginn print using: zeiger auf anfang feld bank formatstring nach i6509 print using: komma flag print using: Kommazeichen print using: blank/stern flag

610/710 basic-using hard+soft ass/reass... seite 0112 zeile adr. obj.-code source-code 8346 b35c 4c 32 b3 8347 b35f 8348 b35f 8349 b35f c9 2e 8350 b361 do lb 8351 b363 ad 75 02 8352 b366 4c 32 b3 8353 b369 8354 b369 8355 b369 a5 8b 8356 b36b fo b6 8351 8358 8359 8360 8361 8362 8363 b36d b36f b372 b374 b375 b378 b31b 8364 b37e 8365 b37e 8366 b37e 8361 b380 8368 b382 8369 b384 8310 b386 8311 b388 8372 b38a 8373 b38c 8374 b38f 8375 b392 8316 b395 8371 8318 8379 8380 8381 8382 8383 8384 8385 8386 8381 8388 8389 8390 b397 b398 b39b b39d b39f b3a2 b3a4 b3a6 b3a9 b3ac b3af b3b2 b3b5 b3b8 8391 b3b8 8392 b3b8 8393 b3bb 8394 b3bd 8395 b3c0 8396 b3c3 8391 b3c3 8398 8399 8400 8401 8402 8403 b3c3 b3c6 b3c8 b3cb b3cd b3d0 c6 Bb ad 61 02 30 b9 38 6e 61 02 ad 16 02 4c 2f b3 c9 2b fo 3b c9 2d fo 32 c9 5e do 39 a9 45 20 e3 b3 ac 65 02 20 09 b3 do 06 c8 20 09 b3 fo 01 a9 2d 2c 6 4 02 30 02 a9 2b punt post 20 e3 b3 mout ae 65 02 bd 00 02 20 e3 b3 ac 12 02 4c 28 b3 ad 6e 02 30 9c ad 6e 02 4c 32 b3 ad 63 02 fo a 1 ce 63 02 do Be ad 6a 02 30 f9 jmp out cmp #$2e bne a fplus lda pudot jmp out zerot lda parsts beq lzer dec parsts lda dolr bmi zout sec ror dolr lda pumony jmp outs afplus cmp #$2b beq ispl cmp #$2d beq ispl1 cmp #$5e bne pndd lda #$45 jsr cdout ldy uexp jsr cmo bne mint iny jsr cmo beq post mint lda #$2d bit usgn ispl1 ispl pndd pndx bmi mout lda #$2b jsr cdout ldx uexp lda buf,x jsr cdout ldy endfd jmp telx lda sno bmi bout lda sno jmp out lda swe beq zerot dec swe bne bout lda posp bmi pndx print using: zeichen dez.punkt dos analyse-byte dos analyse-byte print using: dollar flag print using: dollar flag print using: Währungszeichen ausg. I pu-char, decrement zähler print using: zeiger auf exponent buffer mit o vergleichen buffer mit o vergleichen print using: vorzeichen exponent ausg. I pu-char, decrement zähler print using: zeiger auf exponent basic input-puffer 1-$2ff) ausg. I pu-char, decrement zähler print using: zeiger auf ende feld print using: vorzeichen nummer print using: vorzeichen nummer print using: zähler print us1ng: zähler print using: +1- flag lfeldl

6101710 basic-using hard+soft asslreass... seite 0173 zeile adr. obj.-code source-code 840, b3d2 B'05 b3d5 B'06 b3d7 B'O 7 b3d9 B'OB b3dc 8409 b3df BOO b3e0 B'll b3e3 8412 B'l3 84H b3e3 b3e3 b3e3 8415 b3e3 B'l6 b3e6 8417 b3e9 841B b3ea B'l9 b3ea BHO b3ea BHI b3ed B422 b3f0 8423 b3f3 842' b3f5 B425 b3fb B'26 b3fa 8427 b3fb 842B b3fe 8429 b400 BOO b'03 B431 b405 B02 b'ob B433 b409 20 9c b2 c9 2c do df ad 6f 02 20 e3 b3 cb 'c d2 b3 tat jsr savl cmp ll$2c bne ispll lda blfd jsr cdout iny jmp tat ===> ausg. 1 pu-char, decrement zähler <=== 20 3a b5 cdout ce 6d 02 60 gooop ac 72 02 20 BB b2 20 9e b4 do H Be 70 02 90 19 aa 20 BB b2 bo 05 20 a6 b4 fo 09 ac 70 02 Ba anaf gfor sfar nono jsr ochr dec cform rts ldy endfd jsr ansub jsr camp bne pchar sty begfd bcc ffoun tax jsr ansub bcs nono jsr coml beq founl ldy begfd txa B04 b409 B'35 b409 ===> ausgabe 1 pu-char aus ac <=== B06 b'09 B07 b'09 pchar BOB b'oc B09 b40e foun 1 8HO b4 10 BH 1 b03 ffoun 8H2 b'l5 8H3 b'l7 8'" b'la BH5 bob hyo2 8H6 b'le hyo 8H 7 b421 8HB bh3 BH9 b'25 B450 b427 8451 b'la 8452 b42c 8453 b'le 8454 boo 8455 8456 8457 8458 b431 b433 b05 b438 8459 b438 8460 b08 8461 bob 20 3a b5 90 df bo eb ac 70 02 a6 Bb do d2 Be 6d 02 BB ce 6d 02 20 BB b2 bo 74 c9 2c fo f7 20 75 b4 90 ef c9 2e do OB eb eo 02 90 e9 4c 4f 97 20 aa b4 do Ob ero avfl jsr ochr bcc gfor bcs sfar ldy begfd ldx parsts bne gooop stx cform dey dec cform jsr ansub bcs efo cmp ll$2c beq hyo jsr isp bcc hyo2 cmp ll$2e bne avfl inx cpx 11$02 bcc hyo jmp snerr jsr com2 bne llar bank formatstring nach i6509 print using: blanklstern flag ausg. 1 pu-char. decrement zahler ausgabe 1 zeichen (in acl print using: zeichen zahler lfeldl print using: zeiger auf ende feld ausgabe 1 pu-char aus ac print using: zeiger auf anfang feld print using: zeiger auf anfang feld ausgabe 1 zeichen lin acl print using: zeiger auf anfang feld dos analyse-byte 1 print using: zeichen zahler lfeldl print using: zeichen zähler lfeldl testlausführen. ' - ausgabe '?syntax error', ready testlausführen '$', 'exp',,, -

670/770 basic-using hard+saft ass/reass... seite 0774 zeile adr. obj. -code source-code 8462 b43d 90 03 8463 b43f 8d 67 02 8464 b442 fe 68 02 hyo7 8465 bh5 4c 7e b4 8466 bh8 846 7 bh8 bcc hyo7 sta chsn inc vf,x jmp hyo 8468 bh8 ===>test/ausführen '$', 'exp', - <=== 8469 bh8 8470 bh8 8477 bha 84 72 bhc 8473 bhf 8474 b457 8475 b452 8476 bh5 8477 bh8 84 78 b45b 84 79 bhb 8480 bhb 8487 bhb 8482 bhb 8483 bhd 8484 bhf 8485 b467 8486 b464 8487 b466 8488 b468 8489 b46a 8490 b46b c9 24 do Of 2c 67 02 70 f7 78 6e 6 7 02 ce 68 02 4c 42 b4 llar cmp #$24 bne expo bit dolr bpl hyo 7 clc ror dolr dec vf jmp hyo 7 ===> testlausführen 'exp', c9 5e expa do 76 a2 02 20 88 b2 chkk bo cf c9 5e do cb ca 70 H 8497 b46d ee 6b 02 8492 b470 20 88 b2 8493 b473 bo 22 8494 b4 75 8495 b475 cmp #$5e bne isp ldx #$02 jsr ansub bcs ero cmp #$5e bne ero dex bpl chkk inc fesp jsr ansub bcs efo.. 8496 b4 75 ===> testlausführen +, - <=== 8497 bh5 8498 b475 c9 2b isp cmp #$2b 8499 bh7 do 79 bne cham 8500 8507 8502 8503 8504 8505 8506 8507 8508 8509 8570 b479 bhc bhe b480 b483 b486 b488 b48b b48e b497 b492 ad 6e 02 10 05 a9 2b 8d 6e 02 ad 6a 02 do ad 6e 6a 02 8c 72 02 ee 6d 02 60 spos lda sno bpl spas lda #$2b sta sno lda posp bne ero ror posp s ty endfd inc cfarm rts 857 7 b492 8572 b492 8573 b492 85" b492 8575 b494 8516 bh6 ===> testlausführen '-' <=== c9 2d fo ed 38 chom 8517 b497 8c 72 02 efo 8578 b49a ce 72 02 8579 b49d 60 cmp #$2d beq spos sec sty endfd dec endfd rts print using: justify flag print using: # pasition vor dez.pkt. testlausführen exp,, - print using: dollar flag print using: dallar flag print using: # pasition vor dez.pkt. <=== test/ausführen +, - sprung 'syntax error', ready sprung 'syntax error', ready print using: exponent flag lfeld} testlausführen - print using: vorzeichen nummer print using: vorzeichen nummer print using: +/- flag lfeldl sprung 'syntax error', ready print using: +/- flag (feldl print using: zeiger auf ende feld print using: zeichen zähler (feldl pr~nt using: zeiger auf ende feld print using: zeiger auf ende feld

610/710 basic-using hard+soft asslreass... seite 0175 zeile adr. obj.-code source-code 8520 b49e 8521 b49e 8522 b49e c9 2b comp cmp l$2b 8523 bho fo 15 beq rt 8524 b4a2 c9 2d cmp 1$2d 8525 b4a4 fo II beq rt 8526 b4a6 c9 2e coml cmp l$2e 8527 b4a8 fo Od beq rt 8528 bha c9 3d com2 cmp I$ 3d 8529 bhc fo 09 beq rt 8530 bhe c9 Je cmp l$3e 8531 b4b0 fo 05 beq rt 8532 b4b2 c9 23 cmp 1$23 8533 b4b4 do 01 bne rt 8534 b4b6 18 clc 8535 b4b7 60 rt rts 8536 b4b8 8537 b4b8.end 8538 b4b8.lib butesl

610/710 basic-butesl hard+soft ass/reass..... seite 0176 zeile adr. obj.-code source-code 8540 b4b8 8541 b4b8 ===> programmzeiget auf start (::: 8542 b4b8 8543 b4b8 a9 01 stxtpt lda 1$01 85H b4ba 85 87 sta txtptr+2 bank zeiger auf akt. term 8545 b4bc 18 clc 8546 b4bd a5 2d lda txt tab addrl zeiger anfang basic-text 8547 b4bf 69 ff adc l$ff 8548 b4cl 85 85 sta txtptr addrl zeiger auf akt. term 8549 b4c3 a5 2e lda txttab+l addrh zeiger anfang basic-text 8550 b4c5 69 ff adc l$ff 8551 b4c7 85 86 sta txtptr+ I addrh zeiger auf akt. term 8552 b4c9 60 rts 8553 b4ca 8554 b4ca 8555 b4ca ===> 2 byte-zahl in "linnum komma test. I byte-zahl in xr (::: 8556 b4ca 8557 b4ca 20 e5 b4 getnum jsr getpin dezimal-zahl in klammer nach linnum einlesen 8558 b4cd 8559 b4cd 8560 b4cd :::) kommatest. holt lbyte in xr (::: 8561 b4cd 8562 bkd 20 30 97 combyt jsr chkcom test "komma sonst fehl er + ready 8563 b4d0 4C d6 b4 jmp getbyt zahl < 256 aus akt. text nach xr 8564 b4d3 8565 b4d3 8566 b4d3 :::) charget, I byte-zahl in xr (::: 856 7 b4d3 8568 b4d3 20 26 ba gtbytc jsr chrget nächstes zeichen nach ac (ind.jmpl 8569 b4d6 8570 b4d6 8571 b4d6 ===> zahl < 256 aus akt. text nach xr <=== 8572 b4d6 8573 b4d6 20 0 I b5 getbyt jsr frmnum numerischen ausdruck holen 85 74 b4d9 8575 b4d9 8576 b4d9 ===> zahl < 256 aus akt. text nach xr <=== 8577 b4d9 8578 b4d9 20 Oe 9b conint jsr posint 8579 b4dc a6 74 ldx facmo fac #1: mantisse 8580 b4de do le bne fcer I ausgabe illegal quantity error ready 8581 b4e0 a6 75 ldx faclo fac II: mantisse 8582 b4e2 4c 29 ba jmp chrgot letztes zeichen erneut nach ac tindirekter sprungl 8583 b4e5 8584 b4e5 8585 b4e5 8586 b4e5 ===> dezimal-zahl in klammer nach linnum einlesen <=== 8587 b4e5 20 01 b5 getpin jsr frmnum numerischen ausdruck holen 8588 b4e8 8589 b4e8 8590 b4e8 ===> gk-zahl in fac als adresse nach $11,$12 <=== 8591 b4e8 8592 b4e8 a5 76 getadr lda facsgn fac II: vorzeichen 8593 b4ea 30 12 bmi fcer I ausgabe illegal quantity error ready

610/710 basic-butesl hard+soft ass/reass.... seite 0177 zeile adr. obj.-code source-code 859~ 8595 8596 8597 8598 8599 8600 8601 b4ec b4ee bho b4f2 b4f5 b4f7 b4f9 bhb 8602 bhd 60 8603 b4fe 8604 bhe a5 71 c9 91 bo Oe 20 80 a2 a5 H a 4 75 84 lb 85 lc lda facexp cmp 1$91 bcs fcerl jsr qint lda facmo ldy faclo sty linnum sta linnum+l rts fac II: exponent ausgabe illegal quantity error ready umw. gk-zahl in integer fac II: mantisse fac #1: mantisse lo-byte akt. zeilennummer hi-byte akt. Zeilennummer 8605 b4fe ~c a7 9b fcerl jmp fcerr ausgabe?illegal quanti ty error ready 8606 b501 8607 b501 8608 b501 ===> numerischen ausdruck holen <=== 8609 b501 8610 b501 20 cl 95 frmnum jsr frmevl auswertung beliebiger ausdruck 8611 b504 8612 b504 8613 b504 ===> prüfen. ob numerische variable <=== 86" b504 8615 b504 18 8616 b505 24 8617 b506 8618 b506 chknum clc. byte $24 8619 b506 ===> prüfen. ob stringvariable <=== 8620 b506 8621 b506 38 chkstr sec 8622 b50 7 8623 b507 862~ b507 ===> prüft ob richtiger variablentyp <=== 8625 b50 7 8626 b507 24 II chkval bit valtyp 8627 8628 b509 b50b 8629 b50d 60 8630 b50e 8631 b50e 8632 8633 8634 b50e b510 b510 30 03 bo 03 bo fd chkok bmi docstr bcs chkerr rts docstr bcs chkok 8635 b510 ===> ausgabe?type mismatch error ready<=== 8636 b510 8637 b510 a2 40 chkerr ldx #$40 8638 b512 4c 52 85 jmp error 8639 b515 8640 b515 flag für variablen typ IO=num. l=stringj ausgabe?type mismatch error ready ind. jmp zur Fehlerroutine 8641 b515 ===> ausgabe string -$00 laddr. in zeropage) <=== 8642 b515 8643 86H 8645 b515 b518 b519 stringverwaltung, freier string 8646 b51b 8647 b51c 20 e9 ab aa ao 00 e8 20 73 ba strprt ]Sr frefac tax ldy #$00 1nx jsr mapinx umsch. auf bank I# in $24)

610/710 basic-butesl hard+soft ass/reass.... seite 0178 zeile adr. obj.-code source-code 8648 b51f ca strp2 dex 8649 b520 fo 09 beq strp3 8650 b522 bl 22 lda I index I J, y addrl indirekter index II 8651 b524 20 3a b5 jsr ochr ausgabe I zeichen lin acj 8652 b527 c8 iny 8653 b528 4c lf b5 jmp strp2 8654 b52b 8655 b52b 8656 b52b 4c Be ba strp3 jmp mapusr ums eh. auf bank I I 8657 b52e 8658 b52e 8659 b52e ===> bei bs cursor rechts, sonst space <=== 8660 b52e 8661 b52e a5 Ia ospc lda channl speieherstelle für aktiven kanal 8662 b530 fo 03 beq crtskp ausgabe cursor rechts 8663 b532 a9 20 lda 1$20 8664 b534 2c.byte $2c 8665 b535 8666 b535 8667 b535 ===> ausgabe cursor rechts <=== 8668 b535 8669 b535 a9 ld crtskp lda l$1d 86 70 b537 2c.byte $2c 8671 b538 8672 b538 8673 b538 ===> ausgabe.?. <=== 8614 b538 8675 b538 a9 3f outqst lda l$3f 86 76 b53a 8677 b53a 8678 b53a ===> ausgabe I zeichen I in acj <=== 86 79 b53a 8680 b53a 20 f4 bb ochr jsr bsout ausgabe I char auf akt. kanal 8681 b53d 29 ff and l$ff 8682 b53f 60 rts 8683 b540 8684 b540 8685 b540 ===> ersatz segment s tart adresse <=== 8686 b540 8687 b540 ff dostbl.byte $ff, $ff 8687 b541 ff 8688 b542 ff.byte $ff, $ff ersatz segment end adresse 8688 b50 ff 8689 b5h Oe.byte $Oe ersatz logische filenummer für floppy I 14 J 8690 b545 08. byte $08 ersatz geräteadr. für floppy {8) 8691 b546 6f.byte $6f ersatz sek.adr. für floppy I 15! 8692 b5h 8693 bsh 8694 b547 ===> ersatzwerte vor disk-befehl init. <=== 8695 b5h 8696 b547 a9 00 dospar lda #$00 8697 b549 a2 ff dosprs ldk l$ff 8698 b54b 48 dosprx pha 8699 b54c Ba txa 8700 b54d 48 pha 8 70 I b54e a9 00 lda #$00 8702 b550 85 Bb sta parsts dos analyse-byte I

610/710 basic-butesl hard+soft ass/reass... seite 0179 zeile adr. obj.-code source-code 870J 8 704 8705 8 706 8 70 7 8 708 8709 8 710 8 711 8 712 8 71J 8 714 8 715 b552 b554 b556 b559 b55a b55c b55e b561 b564 b565 b56 7 b56a b56d 8 716 b570 8 71 7 b572 8 718 b57j 8719 b575 8720 b577 8721 b578 8722 b57b 872J b57d 8 724 b57f 8725 b580 8726 b580 85 Sc a2 26 9d 00 02 ca do fa a2 06 bd 40 b5 9d lb 02 ca 10 f7 ae 57 02 Be I a 02 20 29 ba do Oe 68 25 Be do 5c 68 20 b5 b7 a5 Bb a6 Be 60 dosoi dos02 done sta parstx ldx #$26 sta buf,x dex bne dosoi ldx #$06 lda dostbl,x sta dosofl,x dex bpl dos02 ldx dfbank stx dosbnk jsr chrgot bne parsei pla and parstx bne dn20 pla jsr prmrpt lda parsts ldx parstx rts 8727 b580 ===> disk-parameter I einlesen <=== 8 728 8729 8 7JO 8 7JI 8 732 87JJ 8 7J4 8 7J5 87J6 8 7J7 87J8 87J9 b580 b580 b582 b584 b586 b588 b5ba b5bc b58e b590 b59j b596 8740 b596 c9 2J fo Je c9 57 fo 4e c9 4c fo 4a c9 52 do 16 20 26 ba 4c 92 b6 parsei cmp #$2J beq logadr cmp #$57 beq reclen cmp #$4c beq reclen cmp #$52 bne dos5 jsr chrget jmp deliml das analyse-byte 2 basic input-puffer (-$2ff} ersatz segment start adresse addrl das offset untergrenze (bsave,bload} vorgabe für bank-nummer das bank nummer letztes zeichen erneut nach ac (indirekter sprung} disk-parameter I einlesen das analyse-byte 2 syntaxtest: ac = syntax-byte das analyse-byte I das analyse-byte 2 log. file# einlesen (disk-b.} record-länge eintragen (disk-b.} record-länge eintragen (disk-b.} 8741 b596 ===> geräte# l,bank# I einlesen (disk-b. J on <=== 8742 b596 874J b596 20 le b7 onl jsr on 8744 b599 4c Be b6 sav60 jmp del1 8745 b59c 8746 b59c 874 7 b59c ===> geräte# 1 einlesen (disk-b. I u <=== 8748 b59c 8749 b59c 20 2b b7 unit1 jsr unit 8 750 b59f 8751 b5al 8752 b5a4 875J b5a6 8754 b5a8 do fb 20 Je b7 fo fj c9 H fo 58 bank1 dos5 bne sav60 jsr bank beq sav60 cmp #$H beq drv1 nächstes zeichen nach ac (ind.jmp} abfrage auf folgende unit o. bank, sonst fehler bit im dos-syntax-byte 1 setzen, kommatest, parameter einlesen prüfen der geräteadr. (disk-basic}, dann eintragen prüfen der bank # (disk-basicl, dann eintragen drivenummer 1 einlesen (disk-b.j

610/710 basic-butesl hard+soft ass/reass... seite OIBO zeile adr. obj.-code source-code 8755 b5aa B 756 b5ac 8757 b5ae 8758 b5b0 8759 b5b2 8 760 b5b4 8 761 b5b6 8762 b5b8 8763 b5ba 8764 b5bc 8765 b5be 8766 b5c0 8 76 7 8768 8769 b5c0 8770 b5co 8771 b5c2 8772 b5c5 8 773 b5c8 8 774 b5ca 8775 b5cc 8776 b5cf 8777 b5dl 8778 b5d3 8779 b5d6 8780 b5d6 c9 91 fo eb c9 42 fo ef c9 55 fo e6 c9 50 fo 68 c9 49 do Ja fo 5b cmp #$91 beq onl cmp #$42 beq bankl cmp #$55 beq unitl cmp #$50 beq doffl cmp #$49 bne dosio beq ident b5c0 b5c0 ===> log. file# einlesen ldisk-b. I <=== a9 04 20 b5 b7 20 Ba b7 eo 00 fo 4c Be I f 02 a9 04 do c6 4c H 97 logadr lda #$04 jsr prmrpt jsr getval dn20 cpx #$00 beq qtyer2 stx dosla lda #$04 bne sav60 jmp snerr 87BI b5d6 ===> record-länge eintragen ldisk-b.} <=== 8782 b5d6 8783 b5d6 8 784 b5d7 8785 b5d9 8 786 b5dc 8 78 7 b5de 8788 b5e0 8789 b5e3 8790 b5e6 8791 b5e6 8792 b5e6 8793 8794 8795 8796 B797 879B 8799 8800 BBO 1 b5e9 b5eb b5ed b5ef b5f1 b5h b5f6 b5fb b5f8 aa a 9 40 20 b5 b7 eo 57 do 06 20 26 ba 4c H b5 20 Ba b7 eo 00 fo 2b eo ff fo 27 Be 22 02 a9 40 do 1e reclen tax lda #$40 jsr prmrpt cpx #$57 bne recoo jsr chrget jmp recon recoo recon jsr getval cpx #$00 beq qtyer2 cpx #$ff beq qtyer2 stx dosrcl lda #$40 bne tacky1 BB02 b5fb ===> auf filenamen Überprüfen <=== BBOJ 8804 8805 8806 8807 BBOB b5fb b5f8 b5fa b5fc b5fe b600 c9 22 fo 65 c9 2B fo 61 do d1 dos10 cmp #$22 beq name 1 cmp #$2B beq name1 bne dn20 geräte# l,bank# I einlesen (disk-b.} on geräte# I einlesen ldisk-b. I offset untergrenze einlesen ldisk-b. I auf filenamen Überprüfen test:disk-id eingelesen (disk-b.j syntaxtest: ac = syntax-byte I byte-zahl in xr Iauch eingeklammert! dos logische adresse ausgabe '?syntax error syntaxtes t: ac ready syntax-byte I nächstes zeichen nach ac lind.jmp} 1 byte-zahl in xr tauch eingeklammert! dos record-länge filenamen filenamen einlesen (disk-b. I einlesen (disk-b. I u

610/710 basic-butesl hard+soft ass/reass... seite 0181 zeile adr. obj.-code source-code 8809 b602 8810 b602 8811 b602 ===> drivenummer 1 einlesen (disk-b.} <=== 8812 b602 8B13 b602 BB14 b604 BB15 b607 BB16 BB17 BB18 8819 BB20 B821 BB22 8B23 BB24 b60a b60c b60e b611 b614 b616 b61b b61b b61b a9 10 drv1 lda #$10 20 b5 b 7 jsr prmrpt 20 Ba b7 jsr getval eo 02 bo Oa Be 11 02 Be 16 02 a9 10 do 76 4c 1b b7 cpx #$02 bcs qtyer2 stx dosds1 stx dosds2 lda #$10 tacky 1 bne del1 qtyer2 jmp qtyerr syntaxtest: ac = syntax-byte 1 byte-zahl in xr (auch eingeklammert} dos disk drive 1 dos disk drive 2 BB25 b61b ===> test:disk-id eingelesen (disk-b. I <=== 8B26 BB27 BB2B BB29 BB30 BB31 b61b b61b b61e b620 b622 b622 ad 25 02 fo 2a do b1 ident lda didchk beq idcon bne dn20 BB32 b622 ===> offset untergrenze einlesen ldisk-b. I <=== BB33 BB34 BB35 BB36 b622 b622 b624 b627 a9 02 20 ba b 7 20 9d b7 BB37 b62a Be 1b 02 BB3B b62d Bd 1c 02 BB39 b630 a9 02 BB40 b632 B841 b632 doffl lda #$02 jsr prxrpt jsr getoff sty dosofl sta dosofl+1 lda #$02 BB42 b632 ===> bit im dos-syntax-byte 2 setzen <=== BBO b632 BB44 b632 05 Be BB45 b634 B5 Be BB46 b636 do 5a B847 b63b BB4B b63b dlimx1 ora parstx sta parstx bne delim1 bit im dos-syntax-byte 1 setzen, kommatest, parameter einlesen ausgabe 'illegal quantity error, ready dos did flag disk-id einlesen ldisk-b. I syntaxtest: ac = syntax-byte 2 dezimalzahl Iauch in klammer} nach linnum addrl dos offset untergrenze (bsave,bload} addrh dos offset untergrenze (bsave,bloadl dos analyse-byte 2 dos analyse-byte 2 BB49 b63b ===> offset obergrenze einlesen (disk-b. I <=== BB50 BB51 BB52 BB53 b63b b63b b63a b63d a9 04 20 ba b 7 20 9d b7 BB54 b640 Be 1d 02 8855 b643 8d 1e 02 BB56 BB57 b646 b64b a9 04 do eb doffh lda #$04 jsr prxrpt jsr getoff sty dosofh sta dosofh+t lda #$04 bne dlimx1 syntaxtest: ac = syntax-byte 2 dezimalzahl Iauch in klammer} nach linnum addrl dos offset obergrenze (bsave,bloadl addrh das offset obergrenze (bsave,bloadl bit im dos-syntax-byte 2 setzen

610/710 basic-butesl hard+soft ass!reass... seite 0182 zeile adr. obj.-code source-code 8858 b64a 8859 b64a 8860 b64a ===> disk-id einlesen (disk-b. J <=== 8861 b6h 8862 b64a 8863 b64d 8864 b650 8865 b653 8866 b656 8867 b658 8868 b65b 8869 b65e 8870 b661 8871 b661 20 26 ba Bd 23 02 20 26 ba Bd 24 02 a9 ff Bd 25 02 20 26 ba 4c 92 b6 idcon jsr chrget sta dosdid jsr chrget sta dosdid+l lda ll$ff sta didchk jsr chrget jmp deliml 8872 b661 ===> filenamen I einlesen (disk-b. J <=== 8873 b661 8874 b661 8875 b663 8876 b666 8877 b669 8878 b66b 8879 b66d 8880 b670 8881 b6 72 8882 b675 8883 b677 8884 b67a 8885 b67c 8886 b67f 8887 b681 8888 b684 8889 b685 8890 b687 8891 b689 8892 b6bc 8893 b6be 8894 b6be a9 01 20 57 b 7 8d 10 02 85 Of a9 00 8d 12 02 a9 02 8d 13 02 a9 Of 8d 14 02 ao 00 20 73 ba bl 22 99 00 02 cb c4 Of 90 f6 20 Be ba a9 01 name I loop6 lda 11$0 I jsr newnam sta dosfll sta xcnt lda 11$00 sta dosfla lda 11$02 sta dosfla+l lda #$0f sta dosfbl ldy #$00 jsr mapinx lda (indexl),y sta buf,y iny cpy xcnt bcc loop6 jsr mapusr lda #$0 1 nächstes zeichen nach ac (ind.jmp) dos erstes zeichen "id" nächstes zeichen nach ac (ind.jmp) dos zweites zeichen "id" dos did flag nächstes zeichen nach ac (ind.jmp) filenamen einlesen prufen dos filename I länge dos loop-zähler addrl dos filename addrh dos filename bank dos filename I umsch. auf bank (#in $24) addrl indirekter index #1 basic input-puffer (-$2ff) dos loop-zähler umsch. auf bank # 1 8895 b6be ===> bit im dos-syntax-byte 1 setzen, kommatest, parametereinlesen <=== 8896 b6be 8897 b6be 05 8b 8898 b690 85 8b dell ora parsts sta parsts 8899 b692 20 29 ba deliml jsr chrgot 8900 b695 do 19 bne nxxx 8901 8902 8903 b697 b69a b69a 4c 72 b5 done I jmp done 8904 b69a ===> prüfen ob on folgt (disk-b. J <=== 8905 b69a 8906 b69a c9 91 next6 8901 b69c do 03 8908 b69e 4c 96 b5 8909 b6al 8910 b6a1 cmp #$97 bne next6a jmp on 1 8911 b6al ===> prüfen ob 'to folgt (disk-b. J <=== dos analyse-byte dos analyse-byte letztes zeichen erneut nach ac (indirekter sprung) kommatest, nächsten parameter einlesen (disk-b. J prüfen ob 'to" folgt (disk-b. J geräte# l,bank# 1 einlesen (disk-b. J on

610/710 basic-butesl hard soft ass/reass... seite 0183 zeile adr. obj.-code source-code 8912 b6al 8913 b6al c9 a4 8914 b6a3 fo 02 8915 b6a5 do 72 8916 b6a7 8917 b6a7 next6a cmp l$a4 beq next6b bne sav61 8918 b6a7 ===> prüfen ob p folgt (disk-b. I <=== 8919 b6a7 8920 b6a7 8921 b6aa 8922 b6ac 8923 b6ae 8924 b6b0 8925 b6b0 20 26 ba C9 50 do Of fo 88 next6b jsr chrget cmp 1$50 bne pars22 beq doffh prüfen ob p folgt ldisk-b.l nächstes zeichen nach ac lind.jmpl offset obergrenze einlesen ldisk-b. I 8926 b6b0 ===> kommatest, nächsten parameter einlesen ldisk-b. I <=== 8927 b6b0 8928 b6b0 8929 b6b2 8930 b6b4 8931 b6b7 8932 b6ba 8933 b6ba c9 2c do e6 20 26 ba 4c 80 b5 nxxx cmp l$2c bne next6 jsr chrget jmp parsei 8934 b6ba ===> disk-parameter 2 einlesen <=== 8935 b6ba 8936 b6ba 8937 b6bd 8938 b6bf 8939 b6cl 8940 b6c3 8941 8942 8943 89H 8945 8946 8941 8948 8949 8950 b6c5 b6c7 b6c9 b6cb b6cd b6cf b6dl b6dl b6dl b6dl 20 26 ba c9 H fo 10 c9 91 fo lf c9 55 fo 21 c9 22 fo 22 c9 28 fo le parse2 jsr chrget pars22 cmp I$H beq drv2 cmp 1$91 beq an2 cmp 1$55 beq unit2 cmp 1$22 beq name2 cmp 1$28 beq name2 ===> drivenummer 2 einlesen ldisk-b. I <=== 8951 b6dl a9 20 drv2 8952 b6d3 20 b5 b7 8953 b6d6 20 Ba b7 8954 8955 8956 8957 8958 b6d9 b6db b6dd b6e0 b6e2 8959 b6e4 8960 b6e4 eo 02 bo 3e Be 16 02 a9 20 do 20 lda 1$20 jsr prmrpt jsr getval cpx 1$02 bcs qtyerr stx dasds2 lda 1$20 bne del2 prüfen ob on folgt (disk-b. I nächstes zeichen nach ac lind.jmpl disk-parameter I einlesen nächstes zeichen nach ac lind.jmpl drivenummer 2 einlesen (disk-b. I gerätel 2, bankl 2 einlesen ldisk-b. I on geräte# 2 einlesen ldisk-b. I syntaxtest: ac = syntax-byte I byte-zahl in xr Iauch eingeklammert I ausgabe illegal quanti ty error ready dos disk drive 2 bit im das-syntax-byte I setzen, kammatest, parametereinlesen 8961 b6e4 ===> geräte# 2, bank# 2 einlesen (disk-b. I 'on <=== 8962 b6e4 8963 b6e4 20 le bl an2 jsr an 8964 b6e7 4c 04 bl jmp del2 abfrage auf folgende unit o. bank, sonst fehler bit im das-syntax-byte I setzen, kammatest, parameter einlesen u

610/710 basic-butesl hard+soft ass/reass... seite OIB+ zeile adr. obj.-code source-code B965 B966 b6ea b6ea B967 b6ea ===> gerätel 2 einlesen (disk-b. I u <=== B96B b6ea 8969 b6ea 20 2b b7 unit2 jsr unit 89 70 b6ed do 15 bne del2 B971 b6ef B972 b6fl B973 b6h B9H b6f7 B975 b6fa 89 76 b6fd 8977 b6ff 897B b702 8979 b70+ 8980 b70+ a9 02 20 57 b7 Bd 15 02 Be 17 02 Be IB 02 a5 2+ Bd 19 02 a9 02 name2 lda 1$02 jsr newnam sta dosf21 stx dosf2a sty dosf2a+l lda indexl+2 sta dosfb2 lda 1$02 prüfen der geräteadr. ldisk-basicl, dann eintragen bit im dos-syntax-byte I setzen, kommatest, parameter einlesen filenamen einlesen + prüfen dos filename 2 länge addrl dos filename 2 addrh dos filename 2 bank indirekter index II bank dos filename 2 B9BI b70+ ===> bit im dos-syntax-byte I setzen, kommatest, parameter einlesen <=== B9B2 b70+ B9B3 b70+ 05 8b del2 ora parsts 898+ b706 B5 8b sta parsts 89B5 b70b 20 29 ba jsr chrgot B9B6 B9B7 8988 8989 B990 B991 B992 8993 899+ b70b b70d b70f b711 b713 b715 b717 b 719 b71b B995 b lle 8996 b71e fo Ba c9 2c fo a9 c9 91 fo cf c9 55 fo dl do 39 + c a 7 9b beq donel cmp l$2c beq parse2 cmp 1$91 beq on2 cmp #$55 beq unit2 sav61 bne sner qtyerr jmp fcerr dos analyse-byte dos analyse-byte letztes zeichen erneut nach ac (indirekter sprung} disk-parameter 2 einlesen gerätel 2, bankl 2 einlesen ldisk-b. I on gerätel 2 einlesen (disk-b. J ausgabe '?illegal quantity error ready 8997 b71e ===> abfrage auf folgende unit o. bank, sonst fehler <=== 8998 8999 9000 9001 b lle b71e b721 b723 20 26 ba c9 55 fo 06 9002 b725 c9 +2 9003 b727 fo 13 on 900+ bl29 do 29 9005 bl2b 9006 b 72b 9007 b72b 900B b72b 9009 b72b 20 Ba b7 unit 9010 b72e eo 20 9011 b730 bo e9 9012 b732 eo 03 jsr chrget cmp #$55 beq unit cmp #$+2 beq bank bne sner nächstes zeichen nach ac lind.jmp} prüfen der geräteadr. ldisk-basic}, dann eintragen prüfen der bank # (disk-basicl, dann eintragen ===> prüfen der geräteadr. ldisk-basic}, dann eintragen <=== jsr getval cpx #$20 bcs qtyerr cpx 1$03 I byte-zahl in xr Iauch eingeklammert} ausgabe 'illegal quantity error ready u

610/710 basic-butesl hard+soft ass/reass.... seite OIBS zeile adr. obj.-code source-code 9013 b734 90 es 9014 b736 9015 b739 9016 b73b 9017 b73c 901B b73c Be 20 02 a9 OB 60 bcc qtyerr stx dosfa lda #$OB rts ausgabe "illegal quantity error", ready dos primär-adresse 9019 b73c ===> prüfen der bank # (disk-basicj, dann eintragen <=== 9020 b73c 9021 b73c 9022 b73e 9023 b741 9024 9025 b7h b 746 9026 b74b 9027 b74b 902B b74d 9029 b7h 9030 b751 9031 b753 9032 b 754 9033 b754 a9 01 20 ba b 7 20 Ba b7 eo 10 bo d3 Be Ia 02 a 9 0 I 05 Be 85 Be a9 00 60 bank 9034 b754 4c 4f 97 sner 9035 b757 9036 b757 lda #$01 J sr prxrpt jsr getval cpx #$10 bcs qtyerr stx dosbnk lda #$01 ora parstx sta parstx lda #$00 rts jmp snerr 9037 b757 ===> filenamen einlesen + prüfen <=== 903B 9039 9040 9041 9042 b757 b757 b 75a b75d b75e 9043 b760 90H b762 9045 b765 9046 b76 7 9047 b769 904B b76b 9049 b76e 9050 b770 9051 b772 9052 b774 9053 b 7 75 9054 b777 9055 b779 9056 b 77b 9057 b77b 20 b5 b 7 20 b6 91 aa fo bb ao 00 20 df bo c9 40 do 12 a9 BO 20 b5 b7 a5 ßb 09 BO B5 Bb ca e6 22 do 02 e6 23 newnam jsr prmrpt jsr savl3 tax beq qtyerr ldy #$00 jsr savl2 cmp #$40 bne lenchk lda #$BO jsr prmrpt lda parsts ora #$BO sta parsts dex inc index I bne lenchk inc indexl+l 905B b77b ===> länge des filenamen prüfen <=== 9059 b 77b 9060 b 77b Ba 9061 9062 9063 9064 9065 b77c b77e b7bo b782 b 784 c9 I 1 bo 05 a6 22 a4 23 60 9066 b7b5 lenchk txa cmp #$11 bcs errlen ldx index I ldy indexi+j rts syntaxtest: ac = syntax-byte 2 I byte-zahl in xr Iauch eingeklammert) ausgabe "illegal quantity error", ready dos bank nummer dos analyse-byte 2 dos analyse-byte 2 ausgabe "?syntax error", ready syntaxtest: ac syntax-byte I ausgabe "illegal quantity error, ready länge des filenamen prüfen syntaxtest: ac = syntax-byte dos analyse-byte I dos analyse-byte addrl indirekter index #I länge des filenamen prüfen addrh indirekter index #I ausgabe "?string too lang", ready addrl indirekter index #I addrh indirekter index #I

610/710 basic-butesl hard+soft ass/reass... seite 0186 zeile adr. obj.-code source-code 9067 b785 9068 b785 ~~~> ausgabe '?string too long ready <~~~ 9069 b 785 9070 b785 9071 b787 9072 b78a 9073 b78a a2 42 4c 52 85 errlen ldx #$42 jmp error ind. jmp zur Fehlerroutine 9074 b78a ~~~> 1 byte-zahl in xr (auch eingeklammert} <~== 9075 b78a 9076 b78a 20 26 ba getval jsr chrget nächstes zeichen nach ac (ind.jmp} 9077 b78d FO c5 gtvl2 beq sner 9078 9079 9080 9081 9082 9083 9084 9085 b78f b791 b794 b 79 7 b79a b79a b79a b79d 90 09 20 Zd 9 7 20 d6 b4 4c Za 97 4c d6 b4 gtvl5 bcc gtvl5 jsr chkopn jsr getbyt jmp chkcls jmp getbyt test '(. sonst Fehler + ready zahl < 256 aus akt. text nach xr test'j, sonst Fehler + ready zahl < 256 aus akt. text nach xr 9086 b79d 9087 b79d 9088 b79d 9089 b79d 9090 b7a0 9091 b7a2 9092 b 7a 4 9093 b7a 7 9094 b 7aa 9095 b7ad 9096 b7af 9097 b7b1 9098 b7b2 9099 b7b2 ===> dezimalzahl (auch in klammer} nach linnum <=== 20 26 ba fo b2 90 Oe 20 Zd 97 20 e5 b4 20 Za 9 7 a' lb a5 lc 60 getoff jsr chrget beq sner bcc gtff5 jsr chkopn jsr getpin jsr chkcls ldy linnum lda linnum+l rts 9100 b7b2 4c e5 b' gtff5 jmp getpin 9101 b7b5 9102 b7b5 9103 b7b5 ===> syntaxtest: ac = syntax-byte 1 <=== 9104 b7b5 9105 b7b5 25 Bb 9106 b7b7 do 9b 9107 b7b9 60 9108 b7ba 9109 b7ba 9110 9111 9112 9113 9 ", 9115 9116 9" 7 b7ba b7ba b7ba b7bc b7be b7bf b7bf b7bf prmrpt and parsts bne sner rts ===> syntaxtest: ac = syntax-byte 2 <=== 25 Be do 96 60 prxrpt and parstx bne sner rts.end.lib butes2 nächstes zeichen nach ac lind.jmpl tes t (, sonst Fehler + ready dezimal-zahl in klammer nach linnum einlesen test' J, sonst Fehler +ready lo-byte akt. Zeilennummer hi-byte akt. zeilennummer dezimal-zahl in klammer nach linnum einlesen dos analyse-byte dos analyse-byte 2

610/710 basic-butes2 hard+soft ass/reass.... seite 0187 zeile adr. obj.-code source-code 9119 b7bf 9120 b7bf ===> tab. mit zeigern in diskbefehle <=== 9121 b7bf 9122 b7bf 9122 b7c0 9122 b7c I 9122 b7c2 9122 b7c3 9122 b7c4 9123 b7c5 9123 b7c6 9123 b7c7 9123 b7c8 9123 b7c9 9123 b7ca 9124 b7cb 9125 b7cb 9126 b7cb 9127 b7cb 9128 b7cb 9128 b7cc 9129 b7cd 9129 b7ce 9129 b7cf 9129 b7d0 9129 b7dl 9130 b7d2 9130 b7d3 9130 b7d4 9130 b 7d5 9130 b7d6 9130 b7d7 9131 b7d8 9132 b 7d9 9132 b7da 9132 b7db 9132 b7dc 9132 b7dd 9132 b7de 9133 b7df 9133 b7e0 9133 b7e I 9134 b7e2 9134 b7e3 9134 b 7e4 9134 b7e5 9134 b7e6 9135 b7e 7 9135 b7e8 9135 b7e9 9135 b 7ea 9135 b7eb 9135 b7ec 9136 b7ed 9136 b7ee ff 01 05 16 lb 21 23 27 Od 2f 37 3b tabfcb.byte $ff, $01, $05, $16, $1b, $21.byte $23, $27, $Od, $2f, $37, $3b ===> tabelle der disk-befehlsstrings <=== 49 dl 24 dl 3a f I fo dl Ja fl 2c el 2c eo 43 d2 3a f2 3d d2 3a f2 2c dl 3a f I 2c 4 I 4e dl 3a fl 2c do 56 dl tabld.byte $49, $dl.byte $24, $dl, $3a, $fl, $f0 'cat/dir' 'SO:name=typ'.byte $dl, $3a, $fl, $2c, $el, $2c 'dopen' 'O:name,s,r'.byte $eo.byte $43, $d2, $3a, $f2, $3d, $d2 'concat' 'cl:neu=l:alti,o:alt2'.byte $3a, $f2, $2c.byte $dl, $3a, $fl, $2c, $41 'append' 'O:datnam,a'.byte $4e, $dl, $3a, $fl, $2c, $d0 'header' no :dsknam, id.byte $56, $d1 'collect vo'

610/710 basic-butes2 hard+soft ass/reass.... seite 0188 zeile adr. obj.-code source-code 9137 b7ef H.byte $H, $d2, $3d, $dl "backup" "do=i. 9137 b7f0 d2 9137 b7f1 3d 9137 b7f2 dl 9138 b7f3 u.byte $43, $d2, $3a, $f2, $3d, $d1 copy 'co:neu= l:alt' 9138 b7f4 d2 9138 b7f5 Ja 9138 b7f6 f2 9138 b1f7 Jd 9138 b7f8 dl 9139 b7f9 Ja. byte $Ja, $fl 9139 b7fa fl 9140 b7fb 52.byte $52, $dl' $3a, $f2, $3d. $d1 rename 'ro:neu=o:alt' 9140 b7fc dl 9140 b7fd Ja 9140 b7fe f2 9140 b7ff 3d 9140 b800 dl 914 I bboi Ja.byte $3a, $f1 9141 b802 fl 9142 b803 53.byte $53, $d1, $3a, $f1 scratch' so:name 9142 b804 dl 9142 b805 Ja 9142 b806 fl 9143 b807 50.byte $50, $c2, Sez, $eo 9143 b808 c2 9143 b809 e2 910 b80a eo 91H b80b 20 fa bb sav20 jsr chk2 test:eingabe filename I (disk-b.j 9145 b80e ao 02 ldy #$02 9146 b810 a9 04 lda #$04 9147 bbiz 9148 b812 9149 b812 ===> dos befehlsstring zusammensetzen u. ausgeben <=== 9150 bbiz 9151 b812 85 Of sendp sta xcnt dos loop-zähler 9152 b8 14 b9 bf b7 lda tabfcb,y tab. mit zeigern in diskbefehle 9153 b817 48 pha 9154 b818 20 94 b9 jsr oldclr länge disk.status =0, system-status schreiben 9155 bbib az 00 ldx #$00 9156 b81d 68 sdp 1 pla 9157 bbie c6 Of dec xcnt dos loop-zähler 9158 b820 30 48 bmi trnar disk-befehlstringadr ~n zero-page 9759 b822 ab tay 9160 bbzj cb iny 9161 b824 98 tya 9162 b825 48 pha 9163 b826 b9 cb b7 lda tabld, y tabeile der disk-befehlsstrings 9164 b829 10 37 bpl sdp5 ac, xr in disk-befehlsstring 9165 b82b c9 c2 cmp #$cz 9166 bbzd fo 4e beq rsca sekundäradr. in disk-befehlsstring 9167 bbzf c9 do cmp #$d0 9168 b831 fo 59 beq rid disk 'id' in disk-befehlsstring 9169 bbjj c9 ez cmp #$e2 9 '70 b835 fo 73 beq rdcn

610/710 basic-butes2 hard+saft ass/reass.... seite 0189 zeile adr. abj.-cade saurce-cade 9171 b837 9172 b839 9173 b83b 9174 b83d 9175 b83f 9176 b841 9177 b843 9178 b845 9179 b847 9180 b849 9181 b84b 9182 b84e 9183 b850 9184 b850 c9 e1 fo 5d c9 fo fo 43 c9 f1 fo 71 c9 f2 fo 21 c9 eo do 05 ad 22 02 do 12 cmp ll$e 1 beq rwrt cmp ll$f0 beq rfat cmp ll$f1 beq rsfn cmp 11$f2 beq gardfn cmp #$eo bne sdp2 lda dasrcl bne sdp5 9185 b850 ~~~> abfrage drive 1 <~~~ 9186 b850 9187 b850 c9 d1 sdp2 cmp 11$d 1 9188 b852 do 05 bne sdp3 9189 b854 ad 11 02 lda dasds1 9190 b857 10 07 bpl sdp4 9191 9192 9193 9194 b859 9195 b859 9196 b85b 9197 b85d b859 b859 b859 ~~~> abfrage drive 2 <~~~ c9 d2 sdp3 do co ad 16 02 das disk drive 2 9198 b860 9199 b860 9200 b860 ==~> drivell in ascii umwandeln <~~= cmp #$d2 bne sdp1 lda dasds2 recardlänge in disk-befehlsstring Filetyp in disk-befehlsstring zeiger auf Filename 1 setzen abfrage drive 1 das recard-länge ac, xr in disk-befehlsstring abfrage drive 2 das disk drive 1 drivel in ascii umwandeln 9201 b860 9202 b860 09 30 sdp4 ara #$30 9203 b862 9204 b862 9205 b862 =~~> ac, xr in disk-befehlsstring <=== 9206 b862 9207 b862 9d 26 02 sdp5 sta dasstr,x das ausgabe string puffer 9208 b865 9209 b866 9210 b868 9211 b86a 9212 b86a eb do b5 fo 5e inx bne sdp1 gardfn beq rdfn 9213 b86a ~~~> disk-befehlstringadr in zera-page <=== 9214 b86a 9215 b86a Ba trnar txa 9216 b86b 48 pha 9217 b86c a2 26 ldx #$26 9218 b86e ao 02 ldy 11$02 9219 b870 86 64 stx highds 9220 b872 9221 9222 9223 b8 74 b876 b8 78 9224 b87b 68 84 65 ao Of 84 66 20 eb b9 sty highds+1 ldy #$0f sty highds+2 jsr sav3 pla zeiger auf Filename 2 setzen addrl zielende!verschieben)/ temp. facll1 addrh zielende (verschieben/ temp.fac#1 bank zielende (verschieben/ temp. fac#l la,fa,sa,len,adr. befehlsstring eintragen

610/710 basic-butes2 hard+soft ass/reass... seite 0190 zeile adr. obj. -code source-code 9225 b87c 60 9226 b87d 9227 b87d 9228 b87d ===> sekundäradr. in disk-befehlsstring <=== 9229 b87d 9230 b87d 9231 b880 9232 b882 9233 b882 923, 9235 9236 9231 9238 9239 92'0 b882 b882 b882 b88' b886 b888 b88a 92'1 b88c 92'2 b88c ad 2 I 02 do eo rsca rts lda dossa bne sdp5 ===> filetyp in disk-befehlsstring <=== 2' 8b 30 02 10 95 a9 '0 do d6 rfat rfa ta bit parsts bmi rfata bpl sdp I lda lt$40 bne sdp5 92'3 b88c ===> disk 'id' in disk-befehlsstring <=== 92H b88c 92H b88c ad 23 02 92,6 b88f 9d 26 02 92'7 b892 e8 92'8 b893 ad 2' 02 92'9 b896 do ca 9250 b898 9251 b898 rid lda dosdid sta dosstr,x inx lda dosdid l bne sdp5 dos sekundär-adresse ac, xr in disk-befehlsstring dos analyse-byte 9252 b898 ===> recordlänge in disk-befehlsstring <=== 9253 b898 925, b898 9255 b89b 9256 b89d 9257 b89f 9258 b8al 9259 b8a3 9260 b8a6 9261 b8a8 9262 b8aa 9263 b8ac 9264 b8af 9265 b8bl 9266 b8b2 926 7 b8b' 9268 b8b' ad 22 02 fo 0' a9 'c do cl a9 53 8d 22 02 a9 57 do b8 a5 lb 9d 26 02 a5 lc e8 do ae rwrt rwrtl rdcn lda dosrcl beq rwrt I lda lt$'c bne sdp5 lda #$53 sta dosrcl lda #$57 bne sdp5 lda linnum sta dosstr,x lda linnum+l inx bne sdp5 9269 b8b' ===> zeiger auf Filename 1 setzen <=== 9270 b8b' 9271 b8b4 9272 b8b7 9273 b8b9 9214 b8bc 9275 b8be 9216 b8c I ad 12 02 85 22 ad I 3 02 85 23 ad " 02 ac 10 02 9277 b8c' fo 26 9218 b8c6 do 12 9279 b8c8 9280 b8c8 rsfn lda dosfla sta index1 lda dosfla+l sta index1+1 lda dosfb1 ldy dosfll beq rdrto bne xrfn 9281 bbcb ===> zeiger auf Filename 2 setzen <=== 9282 b8c8 ac, xr in disk-befehlsstring dos erstes zeichen 'id' dos ausgabe string puffer dos zweites zeichen 'id' ac, ~r in disk-befehlsstring dos record-länge ac, xr in disk-befehlsstring dos record-länge ac, xr in disk-befehlsstring lo-byte akt. Zeilennummer dos ausgabe string puffer hi-byte akt. Zeilennummer ac, xr in disk-befehlsstring addrl dos filename I addrl indirekter index #1 addrh dos filename I addrh indirekter index #1 bank dos filename I dos filename I länge bank# des Filenamen nach i6509

610/710 basic-butes2 hard+saft ass/reass... seite 0191 zeile adr. abj.-cade saurce-cade 9283 b8c8 9284 b8cb 9285 b8cd 9286 b8d0 9287 b8d2 9288 b8d5 9289 b8d8 9290 b8da 9291 b8da ad 17 02 85 22 ad 18 02 85 23 ad 19 02 ac 15 02 fo 12 rdfn lda dasf2a sta indexl lda dasf2a+l sta indexl+l lda dasfb2 ldy dasf2l beq rdrto 9292 b8da ===> bank# des Filenamen nach i6509 <=== 9293 b8da 9294 b8da 9295 b8dc 9296 b8de 9297 b8e0 9298 bbeo 85 01 84 Oe ao 00 xrfn sta i6509 sty caunt ldy #$00 9299 bbeo ===> filename in disk-befehlsstring <=== 9300 bbeo 9301 bbeo 9302 b8e2 9303 b8e5 9304 b8e6 9305 b8e7 9306 b8e9 9307 b8eb 9308 b8ec 9309 b8ed 9310 bbfo 9311 b8f3 9312 b8f3 b I 22 9d 26 02 eb c8 c4 Oe do f5 24 ca 20 Be ba 4c ld bb rdmav rdrto lda (indexll,y sta dasstr.x inx iny cpy caunt bne rdmav.byte $24 dex jsr mapusr jmp sdpl 9313 b8f3 ===> Syntaxprüfung disk-basic <=== 93" b8f3 9315 b8f3 9316 b8f5 9317 b8f7 9318 b8fa 9319 bbfa 29 e6 fo 03 4c H 97 chk 1 and #$e6 beq chk2 chkerl jmp snerr 9320 bbfa ===> test:eingabe Filename I ldisk-b. I <=== 9321 bbfa 9322 bbfa 9323 bbfc 9324 bbfe 9325 b900 9326 b902 9327 b904 9328 b905 a5 8b 29 01 c9 01 do F5 a5 8b 60 9329 b905 9330 b905 29 e7 9331 b907 do ee 9332 b909 60 9333 b90a 9334 b90a 9335 b90a 29 c4 9336 9337 9338 9339 9340 b90c b90e b910 b912 b914 do e9 a5 8b 29 03 c9 03 do e1 chk2 chk3 chk4 chk5 lda parsts and #$0 1 cmp #$01 bne chker1 lda parsts rts and #$e7 bne chker1 rts and #$c4 bne chker1 lda parsts and #$03 cmp #$03 bne chker1 addrl das filename 2 addrl indirekter index #I addrh das filename 2 addrh indirekter index #I bank das filename 2 das filename 2 länge 6509 indirectian register allgemeiner zähler addrl indirekter index #I das ausgabe string puffer allgemeiner zähler Filename in disk-befehlsstring umsch. auf bank # I test:eingabe Filename 1 ldisk-b.l ausgabe '?syntax errar', ready das analyse-byte ausgabe '?syntax errar das analyse-byte ready ausgabe '?syntax error', ready ausgabe '?syntax errar das analyse-byte ready ausgabe '?syntax error', ready

610/710 basic-butes2 hard+soft ass/reass.... seite 0192 zeile adr. obj.-code source-code 934 I b916 a5 8b lda parsts dos analyse-byte I 9342 b918 60 rts 9343 b919 9344 b919 9345 b919 29 05 chl<6 and #$05 9346 b91b c9 05 cmp #$05 9347 b91d do d8 bne chl<erl ausgabe '?syntax error ready 9348 b91f a5 8b lda parsts dos analyse-byte I 9349 b921 60 rts 9350 b922 9351 b922 9352 b922 ===> statusstring Über sel<.adr. 15 einlesen <=== 9353 b922 9354 b922 a9 00 errchl lda #$00 9355 b924 20 bd ff jsr l<stnam länge und adresse des filenamens eintragen 9356 b927 ao 6f ldy #$6f 9357 b929 20 Sb 93 jsr ochanl 9358 b92c a2 Oe ldx #$Oe 9359 b92e 20 fa bb jsr chl<in eingabel<anal öffnen, fehlertest 9360 b931 ao ff ldy #$ff 9361 b933 20 7d ba jsr mapstr ums eh. auf banl< I 2 9362 b936 c8 loopl iny 9363 b937 20 ee bb jsr basin eingabe I char vom al<t. l<anal Iehn-vektor} 9364 b93a c9 Od cmp #$0d 9365 b93c fo 06 beq errend 9366 b93e 91 I 7 sta ldsdesc+l},y addrl disc-status string 9367 b940 co 27 cpy #$27 9368 b942 do f2 bne loop I 9369 b9h a9 00 errend lda #$00 9370 b946 91 17 sta ldsdesc+ I J, y addrl disc-status string 9371 b948 a9 28 lda 1$28 9372 b94a 85 16 sta dsdesc länge disc-status string 9373 b94c 20 Be ba jsr mapusr ums eh. auf banl< # I 93 74 b9h 20 cc ff jsr l<clrch ein-/ausgabekanal schließen 9375 b952 a9 Oe lda #$Oe 93 76 b954 18 clc 9377 b955 20 13 bc jsr tclose 9378 b958 4c 50 93 jmp dcato 9379 b95b 93ß0 b95b 9381 b95b ===> bearbeitung are you sure?' <=== 93ß2 b95b 9383 b95b 20 57 9d rusure jsr tstdir test direktmodus, hi-byt zeile=$ff 9384 b95e do 32 bne ansyes 9385 b960 a2 74 ldx #$14 9386 b962 20 c3 a3 jsr msg textzeiger + xr, textausgabe 93ß7 b965 20 cc ff jsr kclrch ein-lausgabekanal schließen 938ß b968 20 ee bb jsr basin eingabe I char vom akt. kanal Iehn-vektor} 93ß9 b96b c9 59 cmp #$59 9390 b96d do 19 bne ansno 9391 b96f 20 ee bb jsr basin eingabe I char vom akt. kanal Iehn-vektor} 9392 b972 c9 Od cmp #$0d 9393 b974 fo lc beq ansyes 9394 b976 c9 45 cmp #$45

610/710 basic-butes2 hard+soft ass/reass... seite 0193 zeile adr. obj.-code source-code 9395 9396 9391 9398 9399 9400 9401 9402 9403 9404 9405 b978 b91a b97d b97f b98 I b984 b986 b988 b98a b98b b98d do Oe 20 ee bb c9 53 do 07 zo ee bb c9 Od fo Oa c9 Od 38 fo 06 20 ee bb 9406 b990 do f6 9401 b992 18 9408 b993 60 9409 b994 9410 b994 ansno bne ansno jsr basin cmp 1$53 bne ansno jsr basin cmp I$Od beq ansyes cmp l$0d sec beq ansbye jsr basin bne ansno ansyes clc ansbye rts eingabe I char vom akt. kanal Iehn-vektor} eingabe I char vom akt. kanal Iehn-vektor} eingabe I char vom akt. kanal Iehn-vektor} 9411 b994 ===>länge disk.status =0, system-status schreiben <=== 9412 b994 9413 9414 9415 9416 9417 9418 b994 b996 b998 b999 b99c b99c a9 00 85 16 18 4c de bb oldclr lda #$00 sta dsdesc clc jmp storst länge disc-status string ac in system-status schreiben 9419 b99c 20 b6 91 sav17 jsr savl3 9420 b99f 8d 10 02 sta dosfll dos filename I länge 9421 b9a2 a5 22 lda indexl addrl indirekter index #I 9422 b9a4 a4 23 ldy indexl l addrh indirekter index #I 9423 9424 9425 9426 9427 9428 b9a6 b9a9 b9ac b9ae b9bl b9b2 8d 12 02 Be 13 02 a4 24 Be 14 oz 60 sta dosfla sty dosfla+l ldy indexl 2 sty dosfbl rts addrl dos filename 1 addrh das filename I bank indirekter index #I bank dos filename I 9429 b9b2 9430 b9b2 a2 00 plsv ldx #$00 9431 b9b4 Se 10 02 stx dosfll 9432 b9b7 Se Zf 02 stx dossa 9433 b9ba Be lf 02 stx dosla 9434 b9bd az 01 ldx #$01 9435 b9bf Se zo 02 stx dosfa 9436 b9c2 20 29 ba jsr chrgot 9437 b9c5 9438 b9c7 909 b9ca 9440 b9cd 944 I b9d0 9HZ b9d3 9HJ b9d6 94H b9d9 9445 b9dc 9446 b9df 944 7 b9e I fo Of 20 9c b9 20 f9 b9 Be 20 02 20 f9 b9 Se 2 I OZ ad 12 02 ae 13 02 ac 14 02 85 64 86 65 plsvx beq plsvx jsr sav77 jsr plsv21 stx dosfa jsr plsv27 stx dossa lda dosfla ldx dosfla+l ldy dosfbt sta highds stx highds l dos filename I länge das sekundär-adresse das logische adresse dos primär-adresse letztes zeichen erneut nach ac tindirekter sprung} das primär-adresse dos sekundär-adresse addrl das filename I addrh das filename I bank dos Filename 1 addrl zielende (verschieben}/ temp. fac#f addrh zielende (verschieben/ temp. fac#f

610/710 basic-butes2 hard+soft ass/reass..... seite 0194 zeile adr. obj.-code source-code 9448 b9e3 84 66 sty highds+2 bank zielende (verschieben/ temp. fac#l 9449 b9e5 ad 10 02 lda dos f 11 dos Filename I länge 9450 b9e8 9451 b9e8 9452 b9e8 ===> la,fa,sa,len,adr. befehlsstring eintragen <=== 9453 b9e8 9454 b9e8 a2 64 sav3 ldx #$64 9455 b9ea 20 bd ff jsr kstnam länge und adresse des Filenamens eintragen 9456 b9ed ad lf 02 lda dosla dos logische adresse 9457 b9f0 ae 20 02 ldx dosfa dos primär-adresse 9458 b9f3 ac 21 02 ldy dossa dos sekundär-adresse 9459 b9f6 4c ba ff jmp kstlfs log. filenummer, geräte- und sekundäradr. eintragen 9460 b9f9 9461 b9f9 9462 b9f9 20 29 ba plsv2 7 jsr chrgot letztes zeichen erneut nach ac (indirekter sprung} 9463 b9fc fo d8 beq plsvx 9464 b9fe 4c 91 92 jmp copg 9465 baoi 9466 baoi 9467 baoi 20 30 97 plsv30 jsr chkcom test 'komma sonst fehler + ready 9468 ba04 20 29 ba plsv32 jsr chrgot letztes zeichen erneut nach ac (indirekter sprungl 9469 ba07 do 12 bne plsrts 9410 ba09 4c 97 jmp snerr ausgabe?syntax error', ready " 9471 baoc 9412 baoc 9413 bade a5 76 tstrom lda facsgn fac #I: vorzeichen 9474 baoe c9 Of cmp #$0f 9475 bald do Oa bne xit 9416 bal2 18 clc 94 77 bal3 a9 00 lda #$00 9418 bal5 e5 74 sbc facmo fac 111: mantisse 9419 ball a9 80 lda #$80 9480 bal9 e5 75 sbc faclo fac #I: mantisse 9481 balb 60 plsrts rts 9482 balc 9483 balc 9484 balc 38 xit sec 9485 bald 60 rts 9486 bale 9487 bale 9488 bale 9489 bale ===> umwandlung integer nach gleitkomma <=== 9490 bale 20 13 9b f lpi n t jsr ayint umwandlung real nach integer 9491 ba21 a5 74 lda facmo fac #1: mantisse 9492 ba23 a4 75 ldy faclo fac #1: mantisse 9493 ba25 60 rts 9494 ba26 9495 ba26 9496 ba26 6c 90 02 chrget jmp (ichrge} addrl chrget routine 9497 ba29 9498 ba29 9499 ba29 6c Be 02 chrgot ]mp (ichrgo} addrl chrgot routine 9500 ba2c

610/710 basic-butes2 hard+soft ass/reass.... seite 0195 zeile adr. obj.-code source-code 9501 ba2c 9502 ba2c ===> letztes zeichen erneut nach ac <=== 9503 ba2c 9504 ba2c 20 5a ba nchrgo jsr chrmap i6509 nach "ldaadr, charget-bank nach i6509 9505 ba2f 4c 3b ba jmp chrg20 9506 ba32 9507 ba32 9508 ba32 ===> nächstes zeichen nach ac <=== 9509 ba32 9510 ba32 20 5a ba nchrge jsr chrmap i6509 nach 'ldaadr', charget-bank nach i6509 95" ba35 e6 85 chrgio inc txtptr addrl zeiger auf akt. term 9512 ba37 do 02 bne chrg20 9513 ba39 e6 86 inc txtptr+l addrh zeiger auf akt. term 9514 ba3b ao 00 chrg20 ldy #$00 9515 ba3d bl 85 lda /txtptr},y addrl zeiger auf akt. term 9516 ba3f c9 20 cmp #$20 9517 ba41 fo f2 beq chrgio 9518 ba43 20 50 ba jsr qnum test in halt ac numerisch 9519 ba46 OB php 9520 bah 48 pha 9521 ba48 ad 5b 02 lda ldaadr addrl modifiable adresse 9522 ba4b 85 01 sta i6509 6509 indirection register 9523 ba4d 68 pla 9524 ba4e 28 plp 9525 bah 60 rts 9526 ba50 952 7 ba50 9528 ba50 ===> test inhalt ac numerisch <=== 9529 ba50 9530 ba50 c9 3a qnum cmp #$3a 9531 ba52 bo 05 bcs qnrts 9532 ba54 e9 2f sbc #$2f 9533 ba56 38 sec 9534 ba57 e9 do sbc #$d0 9535 ba59 60 qnrts rts 9536 ba5a 9537 ba 5a 9538 ba5a ===> i6509 nach 'ldaadr charget-bank nach i6509 <=== 9539 ba5a 9540 ba5a a5 01 chrmap lda i6509 6509 indirection register 9541 ba5c Bd 5b 02 sta ldaadr addrl modifiable adresse 9542 ba5f a5 87 lda txtptr+2 bank zeiger auf akt. term 9543 ba61 85 0 I sta i6509 6509 indirection register 9544 ba63 60 rts 9545 ba64 9546 ba64 9547 ba64 ===> lade Iinde>< I I,y in ac <=== 9548 ba64 9549 ba64 a9 00 ldily lda #$00 9550 ba66 22 ora /indexl},y addrl indirekter index #I 9551 ba68 60 rts " 9552 ba69 9553 ba69 9554 ba69 ===> ums eh. auf bank I# in $73) <=== 9555 ba69 9556 ba69 48 mapdst pha

610/710 basic-butes2 hard+soft ass/reass.... seite 0196 zeile adr. obj.-code source-code 9557 ba6a a5 73 lda facmoh fac II: mantisse 9558 ba6c 10 21 bpl mapooi ums eh. auf bank (# in acl 9559 ba6e 9560 ba6e 9561 ba6e ===> umsch. auf bank (#in $601 <=== 9562 ba6e 9563 ba6e 48 mapdsp pha 9564 ba6f a5 60 lda dscpnt+2 bank zeiger string descriptor 9565 ball 10 lc bpl mapooi ums eh. auf bank (# in ac} 9566 ba73 9567 ba 73 9568 ba73 ===> ums eh. auf bank I# in $241 <=== 9569 ba 73 9570 ba 73 48 mapinx pha 9571 ba 74 a5 24 lda index 1+2 bank indirekter index 9572 ba 76 10 17 bpl mapooi ums eh. auf bank (I in acl 9573 ba 78 9514 ba 78 9575 ba78 ===> ums eh. auf bank I 15 <=== 9576 ba 78 9577 ba78 48 mapsys pha 9578 ba 79 a9 Of lda 1$0f 9579 ba lb 10 12 bpl mapooi ums eh. auf bank II in acl 9580 bald 9581 bald 9582 bald ===> ums eh. auf bank # 2 <=== 9583 bald 9584 bald 48 mapstr pha 9585 ba 7e a9 02 lda #$02 9586 babo 10 Od bpl mapooi ums eh. auf bank II in ac) 9587 ba82 9588 ba82 9589 ba82 ===> ums eh. auf bank I 2 <=== 9590 ba82 9591 ba82 48 mapary pha 9592 ba83 a9 02 lda #$02 9593 bab5 10 OB bpl mapooi ums eh. auf bank (# in acl 9594 bab 7 9595 bab1 9596 ba87 9597 ba87 ===> umsch. auf bank I 2 <=== 9598 ba87 48 mapvar pha 9599 ba88 a9 02 lda 1$02 9600 baba 10 03 bpl mapooi ums eh. auf bank I# in ac) 9601 ba8c 9602 babc 9603 babc ===> ums eh. auf bank # I <=== 9604 babc 9605 babc 48 mapusr pha 9606 babd a9 0 I lda 1$0 I 9607 ba8f 9608 ba8f 9609 babf ===> ums eh. auf bank I# in ac) <=== 9610 babf 9611 babf 85 01 mapooi sta i6509 6509 indirection register 9612 ba91 68 pla 9613 ba92 60 rts 9614 ba93 "

6!0/710 basic-butes2 hard+soft ass/reass.... seite 0197 zeile adr. obj.-code source-code 9615 ba93 9616 ba93.end.lib init

610/710 basic-init hard+soft ass/reass.... seite 019B zeile adr. obj.-code source-code 961B ba93 9619 ba93 ===> initialisierung <=== 9620 ba93 9621 9622 9623 ba93 ba96 ba97 20 16 bc 3B 20 99 ff initop jsr clall sec jsr kmemtp 9624 9625 9626 9627 962B 9629 9630 9631 9632 ba9a ba9d baao baal baa2 baa4 baa6 baa7 baa9 9633 baab 9634 baac 9635 baad 9636 baaf 9637 bab I Be a6 02 Be a 7 02 3B Ba e9 a I B5 BB 9B e9 00 B5 B9 3B Ba e9 2b B5 17 aa bo 01 BB 963B bab2 9639 bab4 9640 bab5 B4 IB 9641 bab7 3B 9642 babb Ba 9643 bab9 e9 Oe 9644 babb B5 20 9645 babd aa 9646 babe bo 01 9647 baco BB 9648 bac I B4 21 9649 bac3 9650 bac4 9651 bac5 9652 bac7 9653 bac9 9654 9655 9656 9657 965B 9659 9660 966 I 9662 9663 9664 9665 9666 9667 966B 9669 9670 9671 9672 baca bacc bacd bacf bado bad I bad3 bad4 bad6 bad7 bad9 badb badd badf bael baei? bae3 bae5 bae 7 3B Ba e9 07 B5 Bd aa bo 01 BB B4 Be 3B Ba e9 0' aa bo 01 BB B6 3f B4 40 a' B9 a6 BB do 01 BB ca 86 22 84 23 a9 83 itp04 itp03 itp02 itp06 itp07 stx highst sty highst+l sec txa sbc #$a I s ta buffpt tya sbc #$00 sta buffpt+l sec txa sbc #$2b sta dsdesc+l tax bcs itp04 dey sty dsdesc+2 sec txa sbc #$Oe sta tempst tax bcs itp03 dey sty tempst+l sec txa sbc #$0 7 sta seedpt tax bcs itp02 dey sty seedpt+l sec txa sbc #$04 tax bcs itp06 dey stx memtop sty memtop+ I ldy buffpt+ I ldx buffpt bne itp07 dey dex stx indexl sty index1+1 lda tt$83 alle logischen files schliessen höchste speichergrenze lesen/schreiben lo-byte max. offset user bank hi-byte max. offset user bank addrl zeiger auf eingabe-puffer addrh zeiger auf eingabe-puffer addrl disc-status string addrh disc-status string addrl für 3 temp. string-descriptoren addrh für 3 temp. string-descriptoren addrl zeiger auf akt. Zufallszahl addrh zeiger auf akt. Zufallszahl addrl höchste ram-speicherstelle addrh höchste ram-speicherstelle addrh ze~ger auf eingabe-puffer addrl zeiger auf eingabe-puffer addrl indirekter index ltl addrh ~ndirekter ~ndex #1

610/710 basic-init hard+soft ass/reass.... seite 0199 zeile adr. obj.-code source-code 9673 bae9 ao 00 ldy 1$00 96 74 baeb 20 Be ba jsr mapusr 9675 baee 91 22 sta lindexll,y ums eh. auf bank I I addrl indirekter index., 9676 bafo a9 02 lda 1$02 9671 baf2 85 01 sta i6509 6509 indirection register 9678 bah 85 41 sta memtop+2 bank höchste ram-speicherstelle 96 79 baf6 85 19 sta dsdesc+j bank disc-status string 9680 bafb ao 06 ldy 1$06 9681 bafa b9 20 bb itpoi lda rseed-1, y zufallszahl nach initialisierung 9682 bafd 91 Bd sta lseedpt), y addrl zeiger auf akt. Zufallszahl 9683 baff 88 dey 9684 bboo do fb bne itpoi 9685 bb02 98 tya 9686 bb03 a2 04 ldx 1$04 9687 bb05 91 3f itp05 sta lmemtop),y addrl höchste ram-speicherstelle 9688 bbo 7 cb iny 9689 bbob ca dex 9690 bb09 do fa bne itp05 9691 bbob a9 28 lda 1$28 9692 bbod ab tay 9693 bboe 91 17 sta ldsdesc+l),y addrl disc-status string 9694 bb10 cb iny 9695 bb II a9 ff lda #$ff 9696 bbij 91 17 sta ldsdesc+1j,y addrl disc-status string 9697 bb15 cb iny 9698 bbl6 91 17 sta ldsdesc+7j,y addrl disc-status string 9699 bb18 a5 3f settop lda memtop addrl höchste ram-speicherstelle 9 700 bb1a a4 40 ldy memtop+ 1 addrh höchste ram-speicherstelle 9701 bblc 85 3b sta fretop addrl top of string free space 9702 bble 84 Je sty fretop l addrh top of string free space 9703 bb20 60 rts zufallszahl nach initialisierung 9704 bb21 9705 bb21 9706 bb21 ===> zufallszahl nach initialisierung <=== 9707 bb21 9708 bb21 80 rseed.byte $80, SH, Sc7, $52, $58, $2c 9708 bb22 4f 9708 bb23 c7 9708 bb24 52 9708 bb25 58 9708 bb26 2c 9709 bb27 9 710 bb27 9711 bb27 ===> basic kalt-start <=== 9712 bb27 9713 bb27 20 bc bb init jsr initv standard-vektoren ins ram kopieren 9714 bb2a a2 02 inito ldx 1$02 9715 bb2c bd fe b4 init05 lda fcerl, x ausgabe 'illegal quantity error", ready 9716 bb2f 95 02 sta usrpok,x jmp code für user-routine 9717 bb31 Cl dex 9 7 I 8 bb32 10 fb bpl init05 9719 bb34 85 61 sta jmper $4c wert für 'jmp lfunctions-rout.j 9720 bb36 a2 04 ldx #$04 972 I bb38 bd c7 bb init70 lda initat-l,x 9722 bb3b 9d 59 02 sta tansgn,x flag für 'tan vorzeichen 9723 bb3e ca de>c 9 724 bb3f do f7 bne initio

610/710 basic-init hard+soft ass/reass.... seite 0200 zeile adr. obj.-code source-code 9725 bb41 86 78 stx bits shift-zlihler 972& bb43 86 Ia stx channl speieherstelle für aktiven kanal 9727 bb45 86 16 stx dsdesc länge disc-status string 9728 bbh Be 58 02 stx dolu vorgabe für ausgabe-adresse 9729 bbh 86 ld stx temmpt zeiger auf zeitw. stringdescriptor lrel. offset) 9730 bb4c ca dex 9731 bb4d 86 le stx lastpt addrl letzt benutzter string-descr. 9732 bbh B6 lf stx lastpt+l addrh letzt benutzter string-descr. 9733 bb51 38 sec 9734 bb52 20 9c ff jsr kmembt unterste speichergrenze lesen/schreiben 9735 bb55 86 31 stx vartab addrl zeiger anfang einfache variable 973& bb57 B4 32 sty vartab+ I addrh zeiger anfang einfache variable 9737 bb59 86 2d stx txttab addrl zeiger anfang basic-text 9738 bb5b 84 2e sty txttab+l addrh zeiger anfang basic-text 9739 bb5d 20 93 ba jsr initop initialisierung 9140 bb60 20 Be ba jsr mapusr ums eh. auf bank # I 9741 bb63 ao 00 ldy #$00 9742 bb65 98 tya 9743 bb&6 91 2d sta ltxttabl,y addrl zeiger anfang basic-text 9744 bb68 e6 2d inc txttab addrl zeiger anfang basic-text 9745 bb&a do 02 bne init20 9746 bb6c e6 2e inc txttab+l addrh zeiger anfang basic-text 9747 bb6e a2 26 init20 ldx #$26 9748 bb70 20 c3 a3 jsr msg textzeiger + xr, textausgilbe 9749 bb73 20 2b Ba jsr scrtch 9750 bb76 a2 cc ldx Sec 9751 bb78 ao bb ldy Sbb 9752 bb7a 20 6f ff jsr kvrese netz einlaus reset-vector 9753 bb7d 58 cli 9754 bb7e 4c co B5 jmp ready ausgabe ready ready-status 9755 bbbi 9756 bbbi 9757 bb81 ===> text: '*** cbm basic 128.v4.0 ltltlt' <=== 975B bbbi 9759 bb81 93 signon.byte $93 9760 bb82 2a 211 2a 9760 bbb5 20 43 4f,byte 'ltltlt commodore basic 128, v4.0 **' 97&0 bb88 4d 4d H 9760 bb8b 4f 52 9 760 bbbe " 45 20 42 9760 bb91 53 49 9760 bb94 43 20 31 " 9760 bb97 32 3B 2c 9760 bb9a 20 56 34 9760 bb9d 2e 30 20 9760 bbao 2a 2a 9761 bba2 2a.byte.*. $0d, $0d, $00 9761 bbaj Od 9 761 bba4 Od 9761 bba5 00 9762 bba6 9763 bba6 9764 bba6 ===> tabelle der standard-vektoren <=== 9765 bba6

610/710 basic-init hard+soft ass/reass.... seite 0201 zeile adr. obj.-code source-code 9766 bba6 9767 bba8 9768 bbaa 9769 bbac 9770 bbae 9771 bbbo 9772 bbb2 9773 bbb4 9714 bbb6 9775 bbbb 9776 bbba 9 7 77 bbbc 9778 bbbc 55 85 Cd 85 c2 88 H 89 54 8 7 b I 96 c4 95 2c ba 32 ba le ba 39 9d bvtrs.word nerror.ward nmain.word ncnnch.word nqglop.word ngone.word neval.word nfrmev. word nchrgo.word nchrge.word flpint.word givayf 9779 bbbc ===> standard-vektoren ins ram kopieren <=== 9780 bbbc 9781 bbbc 9782 bbbe 9783 bbcl a2 15 bd a6 bb 9d 80 02 9784 bbc4 ca 9785 bbc5 10 f7 9786 bbc7 60 9787 bbc8 9788 bbcb initv ldx #$15 initv5 lda bvtrs,x sta ierror,x dex bpl initv5 rts 9789 bbc8 ad ff ff initat lda hairq+l 9790 bbcb 60 rts 9791 bbcc 9792 bbcc 9793 bbcc ===> basic-warm-start <=== 9794 9795 9796 9797 9798 9799 9800 9801 9802 bbcc bbcc bbcd bbdo bbd3 bbd6 bbd9 bbda bbdd 9803 bbdd 9804 bbdd 78 warm 20 7b ff 20 16 bc 20 7e ff 20 Be ba 58 4c co 85 sei jsr kioini jsr clall jsr kcint jsr mapusr cli jmp ready.end.lib syscal error-routine hauptroutine basic-interpreter umwandlung text in basic-tokens umwandlung basic-tokens in text dispatcher-routine folgenden num. ausdruck auswerten auswertung beliebiger ausdruck letztes zeichen erneut nach ac nächstes zeichen nach ac umwandlung integer nach gleitkomma umw. integer nach real tabelle der standard-vektoren addrl fehler routine 6509 hardware-irq-vektor initialisierung ein-/ausgabe alle logischen files schliessen initialisierung bildschirm umsch. auf bank # I ausgabe ready ready-status

610/710 basic-syscal hard+saft ass/reass... seite 0202 zeile adr. abj.-cade saurce-cade 9806 bbdd 9807 bbdd 9808 bbdd 9809 bbdd 9810 bbde 9811 bbe1 9812 bbe1 9813 bbe1 9814 bbe1 9815 bbe1 9816 bbe2 9817 bbe5 9818 bbe7 9819 bbe8 9820 bbe8 9821 bbe8 9822 bbe8 9823 bbe8 9824 bbeb 9825 bbed 9826 bbee 9827 bbee 9828 bbee 9829 bbee 9830 bbee 9831 bbf1 9832 bbf3 9833 bbf4 9834 bbf4 9835 bbf4 9836 bbf4 9837 bbf4 9838 bbf7 9839 bbf9 9840 bbfa 984 1 bbfa 9842 bbfa 9843 bbfa 9844 bbfa 9845 bbfd 9846 bbff 9847 bcoo 9848 bcoo 9849 bcoo 9850 bcoo 9851 bcoo 9852 bc03 9853 bc05 9854 bc06 9855 bc06 9856 bc06 9857 bc06 9858 bc06 9859 bc09 9860 bcob 9861 bcoc 9862 bcoc 9863 bcoc ===> system-status in ac lesen <=== 38 readst sec 4c b7 ff starst jmp kreast ===> lag. file Öffnen/befehl ausgeben <=== 18 20 co ff bo 33 60 apen apn10 clc jsr kapen bcs iaerr rts ac in system-status schreiben lag. file Öffnen/befehl ausgeben i/a fehlerbehandlung ===> eingabe 1 char vom akt. kanal (queue-vektar) <=== 20 e4 ff getin bo 2d 60 jsr kgetin bcs iaerr rts eingabe 1 char von tastaturpuffer i/a fehlerbehandlung ===> eingabe 1 char vom akt. kanal (chn-vektar) <=== 20 cf ff basin bo 27 60 jsr kbasin bcs iaerr rts ===> ausgabe 1 char auf akt. kanal <=== 20 d2 ff bsaut jsr kbsaut bo 21 bcs iaerr 60 rts ===> eingabekanal öffnen, fehlertest <=== 20 c6 ff chkin bo 1b 60 jsr kchkin bcs iaerr rts ===> ausgabekanal öffnen, fehlertest <=== 20 c9 ff bo 15 60 chkaut jsr kckaut bcs iaerr rts ===> einlesen vom logischen file <=== 20 d5 ff laad bo Of 60 jsr klaad bcs iaerr rts ===> abspeichern auf logisches file <=== eingabe 1 char vom akt. kanal i/a fehlerbehandlung ausgabe 1 char auf akt. kanal i/a fehlerbehandlung eingabekanal öffnen i/a fehlerbehandlung ausgabekanal öffnen i/a fehlerbehandlung einlesen vom logischen file i/a fehlerbehandlung

610/710 basic-syscal hard+soft ass/reass.... seite 0203 zeile adr. obj.-code source-code 9864 bcoc 9865 bcoc 20 d8 ff save 9866 bcof bo 09 9867 bell 60 9868 bcl2 9869 9870 9871 bcl2 9872 bcl2 9873 bcl3 9874 bcl6 9875 9876 98 77 jsr ksave bcs ioerr rts bcl2 bcl2 ===> carry=l. log. file schliessen <=== bcl6 bcl6 bcl6 38 close sec 4c c3 ff tclose jmp kclose ===> alle logischen files schliessen <=== 9878 bcl6 18 clall clc 9879 bell 4c e7 ff jmp kclall 9880 bcla 9881 9882 9883 bcla 9884 bcla 9885 bclb 9886 bclc 9887 bcld 9888 bclf 9889 bc20 9890 bc23 9891 bc24 9892 bc25 9893 bc28 9894 9895 9896 bc28 9897 bc28 9898 bc29 9899 bc29 9900 bc29 9901 eooo 9902 eooo 9903 eooo 9904 eooo bcla bcla ===> i/o Fehlerbehandlung <=== 18 2a 48 a9 Oe 18 20 13 bc 68 aa 4c 52 85 ioerr clc rol a pha lda #$Oe clc jsr tclose pla tax jmp error bc28 bc28 ===> prüfbyte rom $a000-$bfff <=== b5 chkbt2.byte $b5 = $23d7.end.end abspeichern auf logisches file i/o Fehlerbehandlung logisches file schliessen alle logischen files schliessen ind. jmp zur Fehlerroutine Fehler in pass Fehler in pass 2 assemblierung ende

4. TEIL CROSSREFERENZLISTE 1 CBH 6101710 B A S I C 4. 0

crossreference.... seite '-" $94ee 3416 3554 abrktx $84e7 602 8 f f abs $a22f 430 5152 addf $b2f0 8269 8219 addfrs $880d 1309 1312 1320 addind $9c98 4126 4133 addon $8ce2 2138 2221 2393 2123 addpr2 $0002 243 2H 2H addpr4 $0004 2H 245 245 addpr8 $0008 245 addprc $0001 242 243 243 addrts $8cec 2188 2231 2233 aerbd $841a 622 768 aerbs $8420 616 138 aercn $8498 624 778 aercr $852d 629 842 aerdd $842e 617 143 aerdi $853e 630 847 aerdvo $843c 618 748 '- aerfc $83e4 612 718 aerid $8Hd 619 153 aerld $84bb 626 188 aerls $846a 621 163 aernf $83a5 608 698 aerod $83d8 61 f 713 aerom $83fe 614 128 aeros $8514 628 832 aerot $8521 631 837 aerov $83f5 613 123 aerrg $83c3 610 708 aersn $83b6 609 103 aerst $8484 623 773 aertm $845c 620 758 aeruf $84a8 625 783 aerus $840c 615 133 aervr $84c9 627 794 aexi $84ee 603 817 affrts $8741 1165 1175 afplus $b37e 8350 8366 afrm $b346 8325 8335 ahp $btd9 8103 8105 8123 aintxt $84d9 601 800 alg $b302 8056 8290 amso $82e7 588 636 amsf $82f9 589 641 ams2 $8308 590 646 ams3 $8312 591 651 ams30 $8389 598 686 ams3f $8399 599 692 ams4 $8320 592 656 ams5 $832f 593 661 ams6 $8342 594 666 ams7 $8351 595 6 7 f ams8 $8361 596 676 ams9 $8373 591 681 ana $b0ef 8010 8020 "--- anaf $b3ea 7949 7985 8043 8420 andop $986e H6 4093 ansoio $b291 8217 8220 ans020 $b295 8219 8222 ansbye $b993 9404 9408 ansno $b988 9390 9395 9398 9402 9406

crossreference... seite 2 an sub $b288 8215 8,21 8427 8H6 8485 8492 ansyes $b992 9384 9393 9401 9407 append $937e 410 3272 aremsg $850e 606 827 argexp $0079 75 3733 5061 5426 5433 6232 6318 6321 argho $007a 76 3735 4128 4129 5158 5385 5422 5514 5538 5546 5548 arglo $007d 79 3194 3202 3741 4150 4156 5149 5408 5523 5535 argmo $007c 78 3190 3201 3739 4149 4155 4184 5152 5411 5520 5536 argmoh $007b 77 3186 3197 3737 5155 5414 5517 5537 argsgn $007e 80 3743 4126 4151 4158 5027 5069 5417 5420 5669 5952 6240 64H arisgn $00Tf 81 3745 5028 5085 5419 5H8 5473 5491 5954 6332 6H9 6642 6652 6664 6673 6720 6723 6726 6729 6892 6896 7015 7022 7038 arybnk $0002 292 arydon $9ac0 4361 H33 aryend $0037 43 aryget $9a 77 4392 4394 H30 H32 arytab $0035 42 1769 1770 4261 4263 4333 4334 4351 4352 4554 4555 aryva2 $9a34 4355 4382 4384 aryva3 $9a38 4357 4398 aryvgo $9a43 4358 4360 4364 asc $ab9d H6 7193 aspac $8f02 2556 2577 atn $a 79 I Hl 6545 atn I $a 799 6547 6549 atn2 $a Ta 7 6552 6556 atn3 $a7ba 6561 6565 atn4 $a8te 6566 6632 atncon $a 754 6528 atry $8Hd 604 822 attn $0008 259 268 avfl $b438 8453 8460 ayint $9bl3 2356 3817 4095 4103 H97 9490 backup $9560 408 3550 bakrts $91b5 3008 3013 bank $b73c 8 751 9003 9021 bankt $b5a I 8751 8758 basin $bbee tt 16 3189 3193 3209 9363 9388 9391 9396 9399 9405 9830 bcklnk $a9fc 6869 6902 6916 begfd $0270 164 8334 8424 8431 8HO bigges $a437 6062 6076 bits $0078 74 5242 5672 5685 58" 5821 5832 9725 blfd $026f 163 8008 8345 8407 bload $940e 419 3364 bltl $8845 136 I 1364 bltlp $885 I 13 74 13 77 bltu $8828 1333 1346 bltut $8815 1030 1330 bltuv $881e 1338 4347 bnr $025f 147 79H 8151 8262 8268 8292 8304 8332 bout $b359 8340 8345 8393 8401 bsave $93ec 420 3347 bserr $9ba4 4585 4604 4713 bserr7 $9c79 Hl3 H21 4722 bsout $bbf4 3205 3216 3220 3420 3425 3429 8680 9837 bsvrts $93e8 3339 3373 3385 3394 buf $0200 120 605 6040 6097 6102 6142 6tH 6157 6173 6175

crossreference..... seite 3 6183 6185 6187 6189 6191 6597 6605 8015 8025 8034 8053 8167 8186 8187 8203 8205 8209 8210 8265 8280 8297 8320 8386 8705 8887 buffpt $0088 85 1108 1109 1444 1447 2609 2610 4805 4808 5033 5034 9629 9632 9665 9666 bufful $8f92 2673 2685 buffu2 $8f98 2672 2677 buffu3 $8f9f 2678 2682 bufful $8f8c 2662 2665 2670 bufsiz $00a 1 241 bupl $9571 3556 3560 bvtrs $bba6 9766 9782 cat $aa7a 3645 7006 cbn $b2d4 8260 8262 cclos $9297 398 3151 cdout $b3e3 7973 8118 8324 8373 8384 8387 8408 8415 cff $b 18 I 8048 8079 cform $026d 161 7954 8223 8416 8443 8445 8508 cfrel $ae62 7620 7624 cfre2 $ae6b 7625 7628 cfre3 $ae7c 7634 7638 7641 cfre4 $ae85 7619 7622 7623 7645 channl $001a 28 896 900 1132 1793 2496 2607 2623 2633 2639 2646 2661 2677 2690 2765 2841 2870 3230 8661 9726 charac $000c 17 2245 2249 2250 2310 2328 2780 2782 2786 4098 4111 5850 6248 6310 6639 6654 chea3 $86b8 1074 1078 chead $86ad 1072 1094 chkl $b8f3 3379 3410 9315 chk2 $b8fa 9144 9316 9322 chk3 $b905 3500 9330 chk4 $b90a 3522 3532 9335 chk5 $b910 3542 9338 chk6 $b919 3282 9345 chkbt2 $bc28 9897 chkcls $972a 2927 3453 3864 4547 7154 7737 9081 9094 chkcom $9730 2491 2605 2631 2825 2906 2995 3448 3467 3876 4052 8562 9467 chkds $979a 3928 3948 4016 chkerl $b8f7 9317 9325 9331 9336 9340 9347 chkerr $b510 8628 8637 chkgrb $ae56 7554 7594 7618 chkin $bbfa 3188 3208 3587 9359 9844 chkk $b461 8485 8490 chknum $b504 1833 2926 3656 3727 4082 4490 4890 4903 6592 7257 8615 chkok $b50d 8629 8632 chkopn $972d 2922 3451 3858 3870 4050 9079 9092 chkout $bc00 3246 3581 9851 chkstr $b506 4053 6756 7013 7728 7906 8621 chkval $b507 2351 4124 8626 cho $b306 8092 8292 chom $b492 8499 8514 chout $b338 8076 8329 choutz $b33f 8330 8332 chrd $aadl 447 7054 chrglo $ba35 9511 9517 chrg20 $ba3b 9505 9512 9514 chrget $ba26 941 1186 1268 1466 1491 1509 1514 1854 1939 2126 2129 2295 2332 2394 2471 2591 2772 3634 3761 3 773 3892 4045 4219 4224 42H H88 5878 5884 5896 7885 7904 7999 8568 8737 8 788 8862 8864 8868 8920 8930

crossreference.... seite 8936 8999 9016 9089 9496 chrgot $ba29 946 1462 1851 1936 2061 2096 2101 2130 2143 2268 2381 2503 2601 2124 2150 2811 2823 2913 2959 3128 3138 3441 3465 3415 3621 4203 4210 4542 4956 7119 1231 7881 1980 7993 8582 8715 8899 8985 9436 9462 9468 9499 chrmap $ba5a 9504 9510 9540 chsn $0261 155 1950 7958 8463 chx $b096 7964 7974 clall $bcf6 1764 9621 9797 9878 clct2 $9521 3506 3508 cld2 $9fff 3050 3054 cld3 $9ff3 3056 3061 cld4 $9ff9 3043 3060 clear $BaU 394 1747 clearc $8a4 7 1006 1152 2068 clff $9fd8 3035 3041 clmwid $000a 241 cload $9fc8 385 3033 close $bcf2 3154 3242 3306 9812 clrfac $a2ce 5801 5856 clrpu $Ba 51 1756 1759 clrscr $0093 231 cmd $BeBO 395 2483 2489 cmnd2 $BeBB 2490 2492 cmo $b309 8291 8312 8375 8378 cmpfor $81fa 1291 1308 cnbank $93de 418 3335 cncj $b055 1930 7935 colooa $adf2 7556 7595 colof $ae0 1 7555 1563 col02 $ae09 7571 7596 col02a $ae0e 7573 7576 col02b $ae2a 7588 7591 col03 $ae3d 7564 1601 colect $9513 407 3499 comf $b4a6 8429 8526 com2 $b4aa 8460 8528 combyt $b4cd 2961 1122 8562 comp $b49e 8422 8522 comprt $Beda 2523 2548 con I $b2el 8268 8213 concat $9546 402 3531 conint $b4d9 4801 1054 7258 8518 cont $Bbe9 392 2039 contx $Bc06 1985 2039 2055 contz3 $BbfB 2041 2048 contz4 $8bfa 2043 2049 conupk $a05c 5021 5049 5341 5402 5498 conv $boae 7947 7976 copl $9261 3123 3125 copen $9243 397 3110 copflt $Bdbd 2354 2368 copg $9291 3139 3145 9464 cops $9281 3119 3126 3138 copstr $8dc0 2352 2311 copx $921b 3129 3132 3142 copy $a9bd 6855 6859 6884 copyoi $a9fl 6901 6910 copyoz $a9e8 6901 6903 cos $a6a6 438 6434 cosc $a122 6490 6496

erossreferenee..... seite 5 eount $000e 19 954 1021 1049 1054 II 15 II 19 1129 1502 1560 1574 1582 1583 4474 4546 4603 4630 4654 4698 4735 9295 9305 epef $b09e 7965 7969 er $000d 230 erfin $8ed1 2539. 2542 ertskp $b535 8662 8669 erun05 $88e8 1462 1484 15 II erunio $88ee 1466 1467 1471 1477 1481 1495 1498 1508 erun20 $88dl 1463 146 7 erun30 $88e7 1473 1478 erun40 $88f6 14 79 1489 erun50 $88fa 1491 1496 erun60 $8907 1490 1497 erun70 $8913 1500 1502 erun80 $892a 1506 1514 erun90 $8930 1469 1493 1520 eruneh $88bf 945 953 1453 esave $921b 386 3080 eseol $b062 1933 7941 esys $90e1 396 2878 esysrz $90fb 2891 eurlin $0042 48 881 911 916 917 933 1212 1215 1827 1829 1920 1922 2017 2018 2053 2054 2077 2090 2092 2153 2155 2211 2213 2407 2834 2835 4875 everf $91be 387 3022 evfl $91e6 3026 3048 ezloop $86ba 1079 1081 data $8edf 368 1510 2122 2222 2395 2661 2679 2940 datan $8eed 1819 2222 2238 2699 datbk $9035 276 I 2770 datbkl $9039 2128 2751 2 772 datlin $0049 51 2717 272 I 2832 2833 datlop $8fb5 2699 212 7 2164 datptr $004b 52 1955 1958 1967 1970 2733 2734 2862 2863 dav $0010 260 268 de $0001 256 267 268 deat $9211 413 416 3162 deato $9350 3135 3200 3213 3243 3567 9378 deatoo $92ad 3165 3169 - deltl $92be 3175 3178 deatio $9348 3192 3196 3223 3240 deatz $92bd 3173 3179 deat3 $92ee 3186 3199 3238 deat4 $92fb 3206 3217 deat5 $9317 3215 3218 deat7 $933e 3235 3236 deat8 $9343 3225 3229 3232 3231 deat9 $934 7 3212 3239 delall $93bd 3304 33 II 3383 3501 3560 delear $9501 417 3491 delose $93a9 404 3299 deopol $a9ae 6873 6878 deop02 $a917 6868 68 70 deopy $9521 409 3514 depy2 $9539 3517 3521 depy4 $9540 3520 3524 deeblt $885e 1356 1380 deeeur $9e4 1 4673 4677 deey $b215 8151 8160 deffi $9de5 4957 4963 deffin $9deb 2941 497 I

crossreference. seite 6 defn $9116 3811 2920 defpnt $005b 59 4187 4188 4189 4196 4898 4900 4905 4907 4909 4912 4916 4921 4935 4937 4940 4951 4953 4955 4971 4975 4978 4981 4984 4987 7549 7552 7558 7573 7582 7592 7593 1632 1638 769 7 7698 770 I 7102 dell $b68e 87H 8821 8897 del2 $b104 8958 11964 8970 11983 del300 $afc3 1828 7835 1839 del500 $afdd 7855 7859 7864 delete $af9d 422 7820 deliml $b692 8138 8846 8869 8899 devn2 $blad 8095 8097 dfbank $0257 141 1761 28111 2915 3338 4999 8113 dibf $0080 283 didchk $0225 137 8821 8867 dim $910c 311 2911 dim3 $9109 2906 2914 dimflg $0010 21 4204 4512 4553 4597 4637 4690 dimrts $9ccl 4691 4754 diserr $8e75 2441 2453 2414 dispoo $8e2c 2428 2431 dispol $8e37 2438 2457 dilpo2 $8e41 2444 2450 dispo3 $8e4e 2447 2453 dispo4 $8e5b 2459 2461 dispo5 $8e5e 2458 2460 dispos $8e24 426 2421 divio $aod5 5487 5917 6072 divide $a!oo 5514 5540 divnrm $a151 5531 5565 divsbl $al39 5546 5550 divsub $al34 5534 5542 dlimxl $b632 8844 8857 dload $93ce 412 3325 dn20 $b5d3 8719 8 778 8808 8829 dntcpy $a990 6852 6856 6860 doagin $90bd 2842 2849 docmp $991c 4179 4181 4188 4190 docond $8c6f 2117 2130 docstr $b50e 8621 8632 doffh $b638 8851 8923 doffl $b622 8762 8834 dolr $0261 149 82H 8329 8358 8361 8412 8475 dolu $0258 142 1794 2494 2538 2641 32H 9128 domin $911d 3193 3846 done $b572 8717 8901 donel $b691 8901 8986 dop2 $9387 3265 3267 3276 dopen $936d 403 3260 doprel $9646 3658 3682 doprec $961f 3651 3671 dorel $9818 474 4124 dores $0013 24 1606 1656 1658 1688 4022 4025 4026 4031 1462 7511 7515 dosoi $b556 8105 8107 dos02 $b55e 8709 8712 dos10 $b5f8 8764 8804 dos5 $b5a6 8736 8753 dosbnk $021a 129 3353 3368 8714 9026 dosctl $0015 301 dosdid $0223 136 3388 8863 8865 9245 9248 dosdsl $0211 122 8818 9189

crossreference.... seite dosdsz $0216 126 8819 8956 9197 dosdsk $0008 299 dosfla $0212 123 8819 8881 9271 9213 9423 9424 9443 9444 dosfll $0210 IZ I 3112 8816 9216 9420 9431 9449 dosfza $0211 127 8974 8915 9283 9285 dosfzl $0215 125 8913 9288 dosfa $0220 133 3115 3120 3249 3311 3481 9014 9435 9440 9451 dosfbl $0214 124 8883 9215 9426 9445 dosfbz $0219 128 8977 9287 dosfnl $0012 298 302 302 302 dosla $0Zif 132 3118 3305 3441 3411 8775 9433 9456 doslfn $000e 300 dos1st $0046 302 dosofh $0Zid 131 3357 3358 8854 8855 dosofl $0Zib 130 3351 3352 3370 3371 8710 8837 8838 dospar $b54 7 3162 3318 3409 3491 3499 3514 3531 8696 dosprs $b549 3281 3300 3318 3326 3541 3551 8697 dosprx $b54b 3349 3366 8698 dosrcl $0222 135 3440 34H 8797 9181 9254 9259 dossa $0221 134 3113 3125 3121 3289 3480 9230 9432 9HZ 9458 dosstr $0226 138 9207 9246 9263 9302 dostbl $b540 8681 8109 drvl $b602 8754 8813 drvz $b6dl 8938 8951 dsave $93c3 411 3317 dscpnt $005e 60 6617 6620 6621 6863 6864 6865 68H 6891 7046 7047 7048 70H 7080 7110 7139 7164 7166 7168 9564 dsctmp $0070 66 4143 4161 4165 5673 5684 6627 6662 6689 6907 6992 dsdesc $0016 27 1763 3397 3423 3929 3930 3931 3948 4019 4028 6968 6910 6972 9366 9310 9372 9414 9636 9640 9679 9693 9696 9698 9727 dsptmp $OZ9e 185 2459 2464 2466 dtlpo $8fce 2706 2714 dtlpl $8fcf 2109 2115 dvoerr $a 148 5503 5559 dvarts $9ab3 HOZ 4426 e6509 $ 9 eadj $bz3c 8158 8174 eado $bz3a 8144 8173 8303 eatem $9951 4224 4225 4221 ebase $8Z8f 588 6015 6016 1264 7266 eexz $b064 1942 1982 efo $b497 8447 8493 8511 end $8baa 365 1984 endehr $000d 18 2247 2248 2251 2256 2189 4101 4106 6640 6656 endfd $0212 166 1903 8388 8420 8501 8517 8518 endrel $960e 3644 3648 endrel $95fd 3624 3626 3638 endvar $90cb 2824 2858 enr $0260 148 8026 8051 8139 8259 8272 8305 8317 eoa $b1zd 8014 8040 eoi $0020 261 268 eoist $0040 270 278 eom $0080 234 eormsk $0256 140 2962 2965 4094 4097 4100 4105 4107 4110 4112 erflp 1 $ac2z 12 71 12 75 1271 erflpz $ac36 7282 7287 7299 ero $b435 8457 8486 8488 8505 errchl $b9zz 3392 3416 3950 9354 errd $ac00 4119 1255 errdl $acze 7273 72 78

crossreference..... seite 8 errdz $ac56 errdir $9d4a errend $b944 errf $bldl errfin $85ab errgo3 $9ba9 errguf $9d5Z errigd $8592 errjmp $98a5 errlen $b185 errlin $0298 errnum $008f error $8552 errorz $859d errtxt $029a erst $bl66 etz $bz11 et3 $bz6c ete $bl59 etof $OZ6c eval $96ae evalo $96b5 eval I $96ba evalz $96d0 evalzz $96bd eval3 $96f0 evah $9101 eval5 $970e eval6 $9 7 Ia exchqt $8cf8 exp $a5b3 expl $a5dl expcon $a58a expo $b45b fa $ae89 facexp $00 7 I facho $0072 faclo $00 75 facmo $OOH 7285 2267 9365 8067 910 4592 4869 863 4049 1124 18 I 114 856 2844 6682 897 182 8046 8052 8192 8050 160 3618 376 I 347 348 3768 3791 3810 3829 3838 2248 437 6307 6283 8471 7647 67 5139 5507 5838 6549 68 5168 5658 6122 7 I 7300 2377 9369 8071 2031 4598 4919 865 4119 703 I 882 86 I 140 I 3105 8638 901 884 8067 8201 8199 8058 8083 3750 3795 3763 3762 3784 3809 3828 3835 3841 2261 6231 6309 8482 7660 z 116 5171 5508 5848 6607 183 7 5183 5730 6409 2289 2432 8100 868 9062 934 903 1450 3294 9071 2408 8 I 76 70 IZ 3791 3783 6256 3717 5175 5510 5955 6628 1838 5198 5734 6411 2363 2600 8101 896 9010 935 936 189 I 3404 9892 8191 6296 3746 5181 5607 6045 6646 3715 5200 5772 6629 3709 2659 8117 2318 4005 zooz 3461 4146 5319 5661 6264 6995 4853 5221 5828 6647 3818 2921 2406 2045 3898 4182 5323 5694 6305 1062 5106 5367 5829 6996 3905 4861 2414 2204 4592 4497 5427 5709 6319 7294 5120 5515 5830 7782 3940 2415 2422 4870 5029 5436 5744 6320 8594 5123 5547 5856 7785 3915 4099 4104 4537 4707 4710 4733 5097 5126 5150 5165 5186 5201 5209 5215 5361 5524 5742 5786 5849 5859 6110 6113 6408 6410 6705 6762 6853 6861 7008 7128 7146 7148 7909 8581 8599 9480 9492 4062 5151 5650 6761 7783 3998 2475 5228 5065 5443 5768 6418 5157 5579 6004 3999 21 II 5560 5068 5475 5806 6421 5159 5604 6120 4036 4060 5129 5148 5593 5647 6619 6697 7735 7738 70 2360 3111 3821 3904 3938 3960 3963 3974 4035 4096 4109 4535 4705 4720 4729 5100 5124 5127 5153 5166 5185 5204 5206 5217 5363 5521 5596 5743 5780 5858 6114 6116 6413 6415 6618 6702 6857 6860 6887 7010 1026 1723 1130 7166 77H 7789 7907 7915 7923 8579 8598 9H8 9Ht facmoh $0073 69 3113 4854 5103 5122 5125 5154 5156 5161 5184 5201 5203 5219 5365 5518 5599 5653 5132 5776 5857 6005 6111 6119 6412 6414 6631 6648 6991 7741 7769 7779 7787 1791 1792 9557

crossreference.... seite 9 facov $0080 82 3912 5058 5078 5082 5094 5128 5130 5147 5164 5187 5210 5212 5213 5235 5253 5359 5393 5571 5608 5663 5676 5688 5696 5745 5784 5842 6299 6325 6419 6643 66H 6666 6709 6717 6897 6898 7017 7019 7039 7040 facsgn $0076 72 1835 1906 3696 37H 3906 3942 3957 3976 4058 4167 4174 H91 5070 5140 5418 5H9 5453 5602 5656 5670 5711 5746 5752 5766 5788 5810 5826 5843 58H 5953 6037 6041 6270 6272 6417 6454 6458 6488 6545 6616 6687 6763 6850 6862 6884 7006 7024 7911 8592 9413 fadd $9e4a 5016 5049 5326 5338 6372 6407 6436 6466 faddf $9e7a 5076 5079 fadd2 $9eet 5086 5146 fadd4 $9e86 50H 5066 5085 fadd5 $9e45 5043 5080 fadda $9e76 5067 5077 faddb $9e52 5054 5058 faddc $9e5a 5062 5474 faddh $9eZ7 5014 6075 6457 faddt $9e4d 456 1911 5030 5054 5956 fadflt $9eb5 5111 5747 5851 fbufpt $0082 83 4621 4629 4651 4652 4671 4672 4678 4100 4701 4123 4724 4734 4737 4776 4777 6042 6094 6103 6138 6148 6156 6339 6340 6350 6351 6354 6356 6360 6361 6362 6364 6365 6370 6371 6649 6665 6669 7215 7244 7245 7246 7393 7H6 7H7 7448. 7453 fcerf $bhe 8580 8593 8596 8605 9715 fcerr $9ba 7 2989 3342 4507 4591 5316 720 I 7457 7717 8605 8994 fcerr2 $ad50 7391 7451 7457 fcerr3 $918b 2989 2993 fcerrb $9b25 4503 4507 fcinx2 SaZTB 5761 5765 57 70 57 75 57 79 5785 5796 fcomp $a232 4132 4502 5758 6061 6066 6245 fcompc $a26f 5769 5713 5777 5781 5788 fcompd $a275 5789 5791 fcompn $a234 1914 5759 fcomps $a20b 5716 5791 fcsign $a206 5711 5767 fdiv $aoe6 5329 5498 6493 6555 fdivf $a0de 5491 6H5 fdivt $aoe9 462 5493 5503 fesp $026b 159 8041 8491 ffloop $87e0 1293 1324 fform $b0e7 79 79 BOOT ffoun $b413 8425 BHI ffrts $8814 1245 1295 1315 1325 fhalf $a50e 6202 fiminl $8113 1133 1135 fimin2 $871a 1137 1139 fiminl $8706 1118 1129 fin $a2d8 2808 3763 5866 7238 fin I $a2f4 58 77 5880 finc $a2ef 5875 5878 5910 5943 findgt $a356 5936 5938 findgq $a2f2 5871 5879 findig $a3h 5879 5934 findiv $a337 5917 5919 findp $a3z6 5881 5908 fine $a32c 5883 5899 5911 fine I $a32e 5903 5912 finec $a315 5891 5893 5896 5984

crossreference... seite 10 finecl $a313 5881 5889 5895 finec2 $a31a 589, 5898 finedg $a316 5891 5959 fingo $985b,071,077 fini $869b 1060 3057 1865 finlog $a363 53,0 5942 5948 finmul $a3'0 5916 5921 5923 finnow $9aec H60 H62 finptr $9adf '213 H55 finqng $a3' 7 5915 5920 592, finre2 $9631 3669 361 I finrel $962d 3639 3665 finzlp $a2dc 5868 5810 fixold Saa 12 6870 6903 6929 fkey $911f '21 2983 flag $0262 150 82,2 8323 8339 fligm $90ff 2883 2896 flnrt $813c 1160 1166 1174 flnrts $873d 116 7 II 73 fload $8a72 1775 3038 float $a213 3981,001,032 "97 5130 5951 floate $a220 4833 floats $a21b 349 57" 6008 uu 573, flpint Sbale 9490 9775 fmaptr $9af5 4599 4617 fmult $a008 5347 "" 6056 6255 6298 6343 63H 6363 6'0' fmultt $a00b '60 5352 fndfor $87db 128' 1809 1888 2193 fndl20 $813e 1164 II 70 fndlin $871f 955 IIH I 95 I 7827 7880 fndln3 $8132 1157 116 I fndlnc $8723 1153 1180 2175 fndo50 $9da5 492, 4921 fndoer $9d71 3830 4895 fnedgl $a318 5885 5891 fnk05 $aa65 6935 698 I fnwai t $9152 384 2956 fone $9f9C 5276 for $8a9' 366 1806 forfix $9585 3575 form $0009 16 1922 193 I 8229 8231 format $9,27,06 3378 forpsh $966d 180 3106 3708 forsiz $0013 239 founl $b,oe 800 8439 fout $a3e2 6009 6035 6593 7976 fout I $a3ec 6038 60,0 foutio $a3fd 6046 6050 foutll $a,c6 6157 6160 foutl2 $a,d3 6162 616, fout I' $a4e3 6167 6113 foutl5 Sa,ef 6179 6181 fout 16 $au9 6099 6103 foutl7 $a507 6166 6190 foutl9 $a50' 6041 6189 fout2 SaUf 6110 6125 6127 6155 fout20 $a50c 6188 6192 fout3 Sa,1b 606, 6071 fout31 $a,05 6052 6054 fout38 $a426 6067 6069 fout39 $a458 6092 6094 fout' $a410 6059 6074

crossreference... seite II fout41 $a492 6124 6121 fout5 $a434 6068 6075 fout6 $ahd 6083 6088 fout7 $a40e 6053 6058 fout8 $a46b 6093 6108 fout9 $a42d 6063 6072 foutbl $a513 6112 6115 6118 6121 6201 foutpi $ahc 6081 6087 foutst $a7e3 6596 79 7 7 foutyp $a49b 6129 6132 fpwrl $a564 6241 6246 6249 fpwrt $a541 464 6231 fpwrtl $a54a 6233 6237 fr4 $a730 6512 fre $9cf5 432 4194 freoi $a925 6791 6793 fre02 $a930 6765 6 76 7 6802 frefio $9d01 4195 4801 fref70 $9d29 4814 4829 fref80 $9dl5 4803 4813 frefac $a8e9 2106 4142 4196 676 I 1386 8235 8643 frefst $9dl9 4798 4819 frepla $a92e 6196 6 798 frerts $a972 6782 6785 6787 6827 6829 6831 6841 frespc $003d 46 6741 6747 6748 6750 7490 149 I 1502 7503 7550 7553 7610 7611 7668 7669 frestr $a8e6 3017 6756 7184 fretio $a969 6834 6836 fretmp $a8ef 4152 6 764 7041 7049 1799 7803 7992 fretms $a955 350 6826 6899 fretop $003b 45 1406 1409 1427 1430 4821 4824 6 784 6 786 6 790 6792 6795 6797 7466 7469 7504 1505 7618 162 I 7670 7671 9701 9102 frmevl $95ca 3604 3606 frmevl $95cl 2103 2348 2526 3016 3598 3859 4051 4489 1727 1905 7945 8610 frmnum $b501 1834 1855 1941 4949 8513 8587 8610 frmt6 $9446 3389 3391 frmt8 $945f 3399 3403 fscaio $9396 3284 3288 fsca20 $93a4 3286 3293 fsub $9e2d 5021 5332 6453 6564 fsubt $9e30 458 5026 6326 6450 ftf $bl9c 8080 8090 garba2 $adb5 "18 4819 7513 7523 garbag $ada5 7471 7482 7486 7489 7511 get $8fl5 399 2600 getoio $8f2a 2603 2608 get020 $8f34 2612 26" getadr $b4e8 4997 8592 getagn $8f78 2660 2684 get.tlyt $b4d6 2280 2489 2630 2986 3117 3146 3152 3335 4066 8563 8513 9080 9084 getcmp $990a 4173 4182 getdef $9c5e 4605 4697 getfnm $9d5c 2920 4882 4895 getfor $8b0c 18 75 1882 1940 getin $bbe8 2154 3235 9823 getnth $9031 2166 2768 getnum $b4ca 2946 2956 8557 getoff $b79d 8836 8853 9089 getpin $b4e5 1947 2270 2398 2878 3452 3464 8557 8587 9093 9100

crossreference.... seite 12 getrts $ada4 7464 7506 getspa $ad53 6626 7343 7462 getspt $a97c 6846 6850 getstk $8866 351 1389 1818 2085 3617 getti I $ac70 7315 73' 7 gettim $ac5c 3919 7306 getval $b78a 8772 8792 8815 8953 9009 9023 9076 gfor $b3ed 842' 8438 ginlin $Bfb2 2691 2694 givayf $9d39 3823 3967 4113 4845 9776 glar $11869 6677 7094 glet $B7ce 1250 127' globtt $927e 3133 3278 gloop $aded 7554 7562 7602 glopl $aeld 758' 7585 go $Bc7c 401 2143 gobadv $99af 4276 4320 4324 4326 4330 4332 goflot $9929 4195 4197 gofuc $abab 7 '3' 7194 7201 7262 gogo $9a81 4396 4399 gomldv $a5ce 6308 6313 gomovf $9Bia 4013 4015 4035 gonprc $971f 3812 3851 goo $97a 1 3910 3955 gooo $97b9 3956 3972 gooop $b3e9 8417 8HZ gooos $Bdd6 2385 2430 goorat $93a3 3245 3290 goover $a0b6 5438 5455 5461 5411 5416 5511 gordfn $b868 9178 9210 gosub $Bc25 379 2084 gotary $9bac 4570 4595 goto $Bc84 314 2097 2131 2150 gotoo $Bc87 358 2151 grbg99 $adb2 7512 7518 grease $9c27 4662 4665 grody $89ee 16 II 1639 1664 '6 77 grrk $9Bcd 4145 4148 gtbytc $b4d3 2565 2604 8568 gtff5 $b7b2 9091 9100 gti 10 $acb3 1360 737 7 gtvl2 $b1bd 3H4 3469 9077 gtvl5 $b79a 9078 9084 hairq $fffe 221 9789 havfor $Bblc 1889 1894 highds $0064 62 1028 1029 1364 1366 1368 1375 1379 '38' 2997 3001 3002 3084 3085 3086 3354 3355 3356 4345 4346 4348 4349 4353 4354 4355 4356 4375 4376 4379 4380 4395 4397 4481 HBZ 4656 4658 4661 4615 4677 4680 4745 4748 7545 7561 7563 1566 7624 77H 7747 7750 9219 9220 9222 9446 9447 9H8 highst $02a6 188 9624 9625 hightr $0061 63 1019 1020 1347 135' 1357 1360 1362 1374 1378 1380 3003 3093 3094 3095 4339 4340 HOB H13 4419 4421 4423 4425 7 75 4 775 7 home $00c5 232 hulp $025e 146 7955 7969 8013 BOB I 8138 8145 8150 8159 8236 hup $b1 7e 8057 8076 8112 8124 8126 8129 hyo $b41e 8H6 8449 8456 8465 hyol $b442 8462 8464 8413 8477 hyo2 $b41b 8H5 8451 i6509 $0001 10 2253 2358 2704 2819 2892 2950 2968 2974 2976

crossreference..... seite 13 ichrge ichrgo icrnch idcon ident ierror ieval if if50 ifc ifrmev igone imain incfac incfrt incopo incopl incop2 incrnd incy indexl $0290 $028e $0284 $b64a $b61b $0280 $028a $8c42 $8c4c $0001 $028c $0288 $0282 $9fH $9f5d $aee9 $aeeb $aefb $a lfa $b lf9 $0022 index2 $0025 indlop $9b33 infcer $aee6 ini $b2a5 init $bb27 inito $bb2a init05 $bb2c initio $bb38 init20 $bb6e initat $bbc8 initop $ba93 initv $bbbc initv5 $bbbe inlin $86e3 3882 5000 5259 6740 7755 9677 179 178 173 8828 8765 171 176 377 2105 264 177 175 172 5215 5214 4116 7723 7730 5702 8139 33 3885 5008 5403 6875 7764 9496 9499 1453 8862 8827 856 3750 2103 2107 3598 1181 927 5702 5216 1722 7726 7733 6302 8146 959 3889 5083 5590 6885 7913 3010 5218 3958 5104 5643 6906 7927 9183 5220 961 986 1076 1080 1084 1087 1111 1112 1113 1120 1392 1394 1536 1539 1705 1707 1841 1842 2616 2619 2620 2671 3000 3649 3651 3700 4154 4157 4364 4365 4391 4393 4394 4401 4653 4132 4759 5404 5588 5589 5592 5595 5651 5654 5659 5662 6739 6772 6773 6776 6813 6814 6815 6818 6931 6943 6945 6948 6976 7098 1099 7101 7347 7352 7357 7365 74 78 1495 7497 7500 8976 9053 9055 9063 9421 9422 9425 9550 34 963 972 984 1225 1230 1232 1235 7826 7839 7843 7857 4519 45H 7717 7739 7948 7978 8235 327 9113 359 9714 9115 9718 9721 9724 9745 974 7 9121 9189 9621 9739 352 9113 9781 9782 9785 937 1108 2694 Hl6 5105 5977 7020 8230 5222 4910 5240 6603 7025 9294 4923 5243 6645 1220 9522 4936 5255 6686 7348 9540 4972 5257 6718 7524 9543 4998 5258 6738 7748 9611 988 994 998 1069 1070 1073 1089 1091 1092 1093 1096 1097 1131 1135 1136 1349 1359 1365 1545 1557 1558 1565 1693 1695 2312 2317 2319 2322 2614 2615 2756 2757 2759 2760 2998 2999 3702 3705 3701 3719 4145 4153 4368 4371 4374 4378 4386 4390 H05 Hll HIS H28 H29 H31 5405 5407 5410 5413 5416 5424 5598 5601 5606 56H 5645 5648 6583 66 74 6724 6727 6730 6737 6777 6780 6183 6804 6807 6810 6823 6824 6825 6919 6922 6925 6954 6958 6961 6964 6974 6975 7218 1221 1224 1226 73H 7345 7374 7378 7379 7380 7473 7474 7589 760 7 7639 8003 8650 8886 9064 9212 9214 9284 9286 930 I 9571 9670 96 71 96 75 995 999 1900 5158 5759 5797 1242 1265 7267 1212 7284 7825 7861 1863

crossreference... seite 14 inlinc $86fl II 15 1123 inloop $8ff9 2741 2826 inlpno $9c1f Hll 4719 inlpnl $9c81 4712 4123 inlpnm $9c66 HOl 4136 inpcol $8ff3 2622 2138 inpcom $a913 353 2372 2193 68H inpcon $8ffl 2674 2131 inpflg $0015 26 2138 2152 2775 2829 2860 inpptr $004d 53 2139 2740 2746 2747 2817 2818 2858 2859 2868 inprts $90d1 2864 2869 2871 input $8f66 310 2653 inputn $8Hb 369 2630 insjmp $98a2 4056 4116 inst2 $afl6 1743 7746 inst3 $af24 7750 7153 inst4 $af32 7757 7760 inst5 $ah2 7765 1188 inst6 $af53 7772 7774 7790 inst1 $af6e 7786 7789 instfd $af12 7776 7791 instnf $af77 7762 7770 7773 7794 insy $b0f5 8013 8018 8029 8031 int $a2bl 429 5838 6242 6309 6447 interr $993d 4213 4236 4276 intflg $0012 23 2344 2809 3955 4218 4238 4513 4551 intidx $9b06 H88 4523 intrts $a2d1 5840 5861 inz $b21f 8152 8156 iodone $8f59 2484 2639 2666 ioerr $bcla 9817 9824 9831 9838 9845 9852 9859 9866 9884 iorele $8f5b 2624 26H ipb $0800 301 ipbsiz $000d 308 ipccmd $ 312 ipcdat $0005 316 ipcin $0003 314 ipcjmp $0001 313 ipcout $0004 315 iqplop $0286 174 1680 isary $9b28 4250 4512 isfun $9821 3841 4042 isletc $99bf 3783 4211 4221 4226 4289 islrts $99c8 4290 4294 isp $b4 75 8450 8483 8498 ispl $b3bd 8361 8394 ispll $b3b8 8369 8392 8406 issec $9950 4220 4223 isvar $9154 3785 3903 isvds $9119 3916 3924 isvrts $9199 3914 390 3949 itpoi $bafa 9681 9684 itp02 $bacd 9654 9656 itp03 $bacl 9646 9648 itp04 $bab5 9638 9640 itp05 $bb05 9681 9690 itp06 $bad1 9661 9663 itp01 $bae2 9667 9669 ity $b200 8140 8142 jmper $0061 61 1415 4018 4080 4081 5059 5014 5093 5146 6303 6324 1158 7169 9 719 jsrgm $9b01 H79 HBI

crossref~rence.... seite 15 kbasin $ffcf 211 9830 kbsout $ffdz 212 9837 kchkin $ffc6 208 9844 kcint $ff7e 197 9798 kckout $ffc9 209 9851 kclall $ffe7 219 3593 9879 kclose $ffc3 201 9813 kclrch $ffcc 210 898 2644 3133 3206 3221 3240 3243 3254 3564 93 74 9381 keyzo $9185 2983 2986 key40 $918e 2988 2992 keygo $91ab 2985 3007 kfunky $ff75 195 3001 kgetin $ffe4 218 9823 kioini $ff7b 196 9796 klkupl $ff8d 199 3418 klkups $ff8a 198 3281 kload $ffd5 213 9858 kloop $893f 1483 1501 1533 kloqpz $894d 1545 1549 kmembt $ff9c 202 9 734 kmemtp $ff99 201 9623 knwsys $ff6c 193 2886 kopen $ffc0 206 9816 kplot $fff0 220 2549 2563 4839 krdtim $ffde 216 7306 kreast $ffb7 203 9810 ksave $ffd8 214 9865 kstlfs $ffba 204 3253 3482 9459 kstmsg $ff90 zoo 926 2079 kstnam $ffbd 205 9355 9455 kstop $ffe1 217 1196 1617 1999 3066 3222 ksttim $ffdb 215 7443 kvrese $ff6f 194 9752 la $adbd 7521 7543 lastpt $001e 31 6698 6703 6706 6828 6830 6833 6835 9731 9732 ld100 $a 14d 5530 5563 ldaabs $025a IH 6023 ldaadr $025b 145 3041 3014 3881 3883 3888 3890 4183 4185 H03 HOl 5975 5980 6011 6018 6026 6028 1023 1029 70 75 7077 7111 7114 714 I 7143 7288 7297 1480 1483 952 I 9541 ldfone $8add 1848 ldform $b045 1922 1925 ldi ly $ba64 1569 1580 1708 1716 9549 ldsver $923e 3073 3099 3103 ldver $9200 3025 3034 3064 ldvn $bldc 8109 8125 ldzr $99d7 4305 4316 leftd $aaeb H8 10 71 len $ab8e H3 7180 lenl $ab94 7180 7184 7193 1206 lenchk $b77b 9046 9054 9060 let $8d8a 373 1271 1808 2341 lf $000a 229 lfor $0271 165 1926 8218 linget $8d4e 952 2150 ZZ96 2305 7879 7886 linnum $00lb 29 810 873 1037 1039 1163 "72 1631 1633 19H 1949 2154 2156 2306 2307 2311 2315 2320 2321 2323 2324 2325 2326 232 7 2329 2331 2399 2884 2885 2900 2949 2964 4993 4995 5002 5005 5007 7888 7889 7892 7893 8600 8601 9095 9096 9262 9264

crossreference... seite 16 linprt $a3b4 918 1645 3203 6004 list $898d 393 1592 list4 $8995 1605 16 74 listh $89a2 1608 1616 list5 $89ad 1618 1625 lkelse $8c5c 2122 2128 lkt50 $ac7a 1318 1325 llar $b448 8461 8470 lmkrtt $86de 1099 110, lnkprg $86a4 1007 1060 1067 3036 lnkrts $86d4 1077 1095 load $bc06 3072 3372 9858 loadck $91cd 3035 3330 loadnp $91fd 3062 3329 log $9fca 436 5313 6252 logt $9fd4 5315 5319 log2 $9fc5 5305 logadr $b5c0 8130 8170 logcn2 $9fa I 5281 logeb2 Sa585 6278 logerr $9fd1 53" 5316 loopt $b936 9362 9368 loop6 $b61f 8886 8890 loopdn $8b64 1918 1932 lopfda $9b15 4556 4580 lopfdv $9b81 4559 4562 lopfn $999c 4262 4265 lopfnd $9992 4260 4282 loppta $9bf4 4635 4655 loprel $95el 3622 3635 lowds $006a 64 4766 4187 5868 5902 59" 5913 5914 5918 5922 5931 5959 5971 5983 6058 6070 6013 6078 6089 6090 6143 6165 6170 7533 7536 7539 1588 7651 7654 7656 76 79 1682 1686 168 7 7689 7751 777, 778, lowtr $006d 65 958 962 965 967 976 979 1033 1035 1038 1041 1045 1046 1048 1052 1153 1154 1156 1159 1162 "71 "76 1179 1348 1352 142, 1607 1610 1621 1630 1665 1668 16 7, 1612 16 73 1953 1956 2, 77 2180 4259 4260 4266 4270 4280 4335 4336 4436 4439 4442 4444 4H6 4448 H50 H56 4459 H77 44 78 4556 4551 4564 4568 4572 4574 4577 4579 4602 4623 4627 4634 4646 4649 4683 4685 4688 4689 4697 4108 4719 4760 4163 5895 5898 5908 5909 5935 5963 1548 7551 7514 1583 7708 7709 7 712 7713 7758 776, 7763 7768 7775 7784 1823 7824 7830 7834 7836 7837 1838 7841 7844 7856 1860 lpoper $95cf 3613 3688 lsg $b, lf 8024 8034 1stend $8993 1593 1599 lstnr $0020 212 lstpnt $0054 56 1296 1299 1301 1303 1310 1313 1436 1437 1438 16H 1647 1691 1862 1864 1866 1907 1908 1909 2190 2192 2351 2361 2364 3060 5633 5634 5635 6844 6871 6876 6905 6908 6918 6921 6924 6930 luk4i t $8ca0 890 2151 2169 2402 lukall $8ca4 2162 2164 2,15 lvrl $9204 3063 3066 3067 lzer $b323 8311 8356 main $85ca 927 943 10" 1062 main I $85f3 9H 952 main2 $868f 1047 1049 map001 $ba8f 9558 9565 9572 9519 9586 9593 9600 96"

crossreference... seite 17 mapary $ba82 4562 4600 4619 4669 9591 mapdsp $ba6e 6873 7073 7109 7138 9563 mapdst $ba69 4168 7059 7293 9556 mapinx $ba73 6576 6802 6916 6940 6952 7586 7606 8002 8641 8885 9570 mapstr $ba7d 3395 3421 4017 7239 7492 7557 7572 7580 7631 9361 9584 mapsys $ba78 5796 7268 7283 9577 mapusr $ba8c 889 910 1384 1950 2262 2365 238 7 2401 2722 3400 3430 3965 4029 4190 4278 H55 4578 4595 4665 H54 4942 4988 5425 5609 5664 5798 5979 6587 6610 6661 6695 6745 6816 6879 6888 69" 6926 6949 6966 6984 7027 7063 7083 7140 7236 720 7300 750 I 7665 7804 7855 7878 7991 8004 8232 8656 8891 9309 9373 9605 9614 9140 9799 mapvar $ba87 1341 4265 066 4399 H33 9598 memtop $003f H 3937 3939 3941 7546 7541 9663 9664 9678 9687 9699 9700 midd $ab42 450 712 7 mint $b39d 8376 8380 mkgarb $aa20 6768 6940 mkti 10 $ace6 7394 1405 mkti50 $adle 7415 1423 mktime $acd6 6841 7386 mktmb $ace2 7389 7392 mktmc $ad08 1408 7411 mktmd $ad0a 7410 7412 mldexp $a090 5434 6334 mldvex $a0ab 5453 6308 mlexio $a385 5961 5968 mlexmi $a3a0 5964 5983 mloop $8639 987 994 997 100 I mltpl 1 $a03b 5368 5374 5378 mltpl2 $a03e 5380 5396 mltpl3 $a04d 538 I 5389 mltph $aoh 5384 5388 mltply $a036 5360 5362 5364 5366 5374 morcol $8eeo 2552 2553 morenl $8855 1367 1369 1376 1383 morlin $8d54 2308 2333 morsts $8 7dl 1229 1274 maut $b3a6 8382 8384 movoo $aed2 7699 770 I movooi $a laa 5628 5643 movoi $aeel 7710 7712 movlf $al94 5620 6341 6477 mov2f $a 19 I 56" 6352 movaf $ale3 5466 5487 5682 5949 6223 6HI 6H6 movafl $ale8 5684 568 7 movdo $a8c4 6677 6732 7037 movef $ale6 5683 6304 movfa $a ld3 4102 5055 5669 movfa I Sa ld5 5670 6249 movfal $a ld9 5672 5675 movfm $al66 1850 1903 3772 4037 5492 558 7 6226 6486 movfr Sa Hia 5369 5577 movfrz Sal~c ~578 5581 movfum $al68 3977 5588 6401 movins $a8ab 6717 6895 7035 movlp $a8ca 6736 6743 movmf Sa 198 5626 6239 6483 movpnt $aec8 7559 7613 7629 7695

crossreference..... seite 18 movrts $alf1 5689 5695 5691 5703 movtop $aed1 1609 1621 1106 movumf $a 1a5 4930 5640 6,29 movvf $a19f 1912 2368 5633 msg $a3c3 90, 915 92' 2030 2850 2813 3056 323' 6015 9386 9H8 msgprt $a3cf 6023 6021 6029 msgrts $a3e1 602, 6030 mulio $a0b9 H66 5921 5938 6069 mulior $a0cf 5U8 5H1 muld $a0a6 HH 5H8 muldiv $a08e 5353 5U3 5509 mulshf $9f63 5233 5315 multrt $a05b 5352 5397 mvdone $a8d9 6133 6145 mvstrt $a8e5 6749 6751 mxbank $0010 289 n0999 $a3a5 5989 n32168 $a50d 6191 n9999 $a3aa 599, naa $add9 1526 15H naa2 $aea 1 76U 7665 namel $b661 8805 8801 881' name2 $b6ef 89H 89U 8971 nbr $b30f 8302 8313 nchrge $ba32 9510 97H nchrgo $ba2c 950, 9773 ncnnch $88c2 1458 9768 ndac $00,0 262 261 negfac $9f2a 5112 5193 negfch $9f2d 5198 5815 neghlf $9fc0 5300 negop $a57a HO 5929 6264 6327 6'63 6H9 65U 6567 negprc $9620 3658 3853 negrts $a58' 6259 6265 6273 negxqs $a3'c 5925 5929 nerror $8555 861 9766 neval $96b1 3755 9 771 newchr $8e9a 2503 2531 newnam $b157 8815 8912 9039 newsgo $8b61 1927 1938 newstt $815a 355 1196 1810 192 7 2098 next $8b06 367 1815 next6 $b69a 8906 8929 next6a $b6a 1 8907 8913 next6b $b6a 7 89H 8920 nf $0269 15 7 8070 8110 825, nfrmev $95c' 3603 9712 ngone $875, 1186 9710 nmain $85cd 932 916 7 nmaryt $9b93 4567 4571 nmil $a3af 5999 no' $b199 8086 8089 nocr $b0dc 1995 7999 nodel $86,7 956 1006 nodell $866, 1022 102, nodelc $866a 1026 1028 nodele $8656 1010 1016 nodev $0080 279 nomn $b129 8036 8038 nono $b,05 8'28 801 nonono $9b20 H92 4503

crossreference... seite 19 norml $9f0c 51ZI 5169 normz $9f00 5163 5169 norm3 $9ebe 51ZO 5133 normal $9eba 5111 5117 558Z 6HZ nos I $bzo I 8141 8143 nos3 $bzz3 8087 8158 nos4 $bz04 8089 81H nosec $995b 4ZZZ HZ8 nos1ft $9dZc 4000 4810 48Z6 4831 notabr $8f0C Z5Z5 Z57Z Z584 Z591 notdel $affl 7846 7865 notdim $9c04 4638 4645 noteos $afbd 7833 7836 noteve $9aZO 4343 4345 notevl $99de 4300 4304 4311 notfdd $9bd0 4561 4617 notfns $99c9 4Z64 4Z97 notit $99bZ H68 4Z78 notol $8aa5 1810 1815 notop $96f8 HZ 3817 notqti $8f75 Z634 Z6H Z659 notstr $9965 4ZZ9 4Z33 nowgel $9074 Z80Z Z804 nowget $905a Z784 Z789 nowlin $8fda Z70Z Z7ZZ nqglop $89(4 1685 9769 nrange $af9a 7815 78ZO 78ZZ nrfd $0080 Z63 Z67 nsttl $877b 1197 IZI9 nsttz $878c 12ZO IZZ7 nstt3 $876c IZ07 IZ31 nstt4 $876f IZ03 IZ06 IZIO nstt6 $87cl IZ5Z IZ6Z nstt9 $8780 891 IZZI nsxx4 $8bd9 ZOIZ 20Z5 nsxx6 $8be6 ZOZ8 Z034 numins $9077 Z7H Z808 numlev $001a Z40 numtmp $0003 251 nxtcmp $98ff 4171 4186 nxtlgc $8d82 2330 2332 nxtptr $99bl 427Z 4277 nxxx $b6b0 8900 89Z8 oblk $b09a 7967 7970 ochanl $935b 3184 3249 9357 ochlio $9362 3Z50 3Z5Z ochr $b53a 1653 1718 Z537 2541 60Z5 8415 807 8651 8680 ocrlf $8ec8 901 1134 1625 2508 2536 7996 ocrl fx $8ed9 2516 Z50 okgoto $8c58 ZI09 Z116 oknorm $9856 4047 4074 oldclr $b994 3301 3483 3580 3586 9154 9413 oldlin $OOH 49 ZOI9 2020 2051 2052 oldstk $029c 183 881 1226 oldtok $029f 186 2431 2456 oldtxt $0046 50 883 1223 1224 1791 1792 2015 2016 2040 2042 20U 2851 2852 omerr $8550 855 1432 4116 7518 omerrl $9c7c 4657 4664 4716 4175 4786 omerrc $88a3 1429 1432 omerrt $88ba IH6 IH9 on $b71e 8 743 8963 8999

crossreference... seite 20 on1 $b596 8143 8156 8908 onz $b6e4 8940 8963 8990 oneon $8af1 1853 1860 onglop $8d3a 2283 2285 2289 2298 onglp1 $8d42 2290 2295 ongoto $8d2b 383 2280 ongrts $8d4d 2300 2308 open $bbe1 3134 3255 9815 opmask $005a 58 3620 3630 3631 3633 3638 3613 3681 4141 opn10 $bbez 3566 9816 opptr $0051 51 27H 2145 2819 2820 3660 3128 optab $80d1 455 3654 3675 3682 3684 3691 orop $986b 468 4087 oserr $8812 1391 1400 ospc $b5ze 2530 2585 2693 8661 out $b332 8324 8342 8346 8352 8395 outc $b0a1 1968 1913 outfac $a3be 2529 6009 outqst $b538 902 2692 216 7 8615 outs $b3zf 8323 8363 overr $9f5e 5182 5221 5461 5965 8183 parchk $9124 3836 3858 4074 4902 1256 parszz $b6bd 8922 8931 parse 1 $b580 8716 8729 8931 parsez $b6ba 8936 8988 parsts $008b 81 3111 3163 3171 3264 3302 3504 3518 3521 3523 1943 7984 8128 8156 8220 8251 8283 8285 8331 8355 8351 8H1 8102 8122 8891 8898 8983 8984 9049 9051 9105 9236 9322 9326 9331 9341 9348 parstx $008c 100 8012 8028 8040 8042 8084 8090 8136 8161 8193 8243 8253 8282 8290 8302 8103 8 718 8123 88H 8845 9028 9029 9112 patch1 $9586 2495 3580 patchz $958c 2606 2632 3586 patch3 $9592 3312 3592 pchar $b409 8423 8431 peek $9e01 HZ 4993 pi $00ff" 248 pi2 $a126 6502 pival $96cb 3778 ploop $89cc 1653 1685 168 7 1689 ploop1 $89d9 1655 1663 plsrts $ba1b 9469 9481 plsv $b9b2 3065 3080 9430 plsvz 7 $b9f9 9439 9HI 9462 plsv30 $ba01 3130 3145 9467 plsv3z $ba04 3116 3151 9468 plsvx $b9d6 3132 9431 9H3 9463 pndd $b3c3 8371 8398 pndx $b3cb 8401 8403 pntl $b20e 8137 8148 poit $bzzb 8147 8161 poke $9146 389 2946 poly $a61b 6330 6350 poly1 $a61f 63H 6352 polyz $a634 6363 6316 poly3 $a630 6359 6361 poly4 $a64 1 6368 6370 polyx $a605 5335 6339 6472 6558 pos $9d33 433 4838 posint $9b0c H90 8518 posp $026a 158 8058 8102 8402 8504 8506

crossreference... seite 21 post $b3a4 8379 8383 prcha $b094 7951 7956 7963 pream $ab70 70 71 7107 7130 7154 print $8e9d 391 2499 2508 printc $8ea6 2510 2516 2592 printn $BeTa 390 2483 prit3 $8afe 1704 1715 1719 prit3b $Ba lf 1698 1716 prit4 $89c8 354 16H 171 7 prmrpt $b7b5 8721 8771 8785 8814 8952 9039 9048 9105 prxrpt $b7ba 8835 8852 9022 9112 ptrget $992c 356 105 1882 2925 3903 4202 ptrgtf $9931 2912 4204 ptrgt2 $9933 4209 4886 ptrgt3 $9940 4212 4216 ptrsiz $0003 250 puc50 $a Tcf 6580 6582 puc60 $a7d0 6583 6586 pucbye $a7d8 6578 658 7 pucoma $0274 168 8341 puctrl $a 7c0 427 6575 pudefs $8a90 1756 1801 pudot $0275 169 8351 pufill $0273 16 7 1757 6584 8007 pulst! $9691 3730 pulstk $9690 3664 3676 3729 pumony $0216 170 8362 punt $b35f 8338 8349 pushf $965e 1861 3698 pushfl $9659 3686 3696 putnew $a86c 6611 6678 7042 7066 7301 putnwl $a877 6680 6685 putnw2 $a8a 1 6 704 6707 putnwl $a87f 6689 6694 qchnum $9681 3655 3725 qcomp $9905 4134 4179 qdata $9028 2153 2164 qdectl $8631 982 985 qdot $96d1 3769 3790 qdsav $97f0 3993 3997 4012 qdsvar $99fe 4322 4321 qeravr $99f2 4318 021 qerlin $9Td5 3983 3985 3992 qinlin $BfaB 2660 2690 2768 qint $a2bo 4504 5806 5841 6076 8597 qintl $a2a0 5819 5825 qintgo $9b22 H99 4504 qintgr $Bda3 2354 2810 qintrt $a29f 5787 5822 qishft $a294 5811 5817 qnrts $bl59 9531 9535 qnum $ba50 1450 9518 9530 qnumer $97ea 3995 4005 qop $9682 3640 3642 3722 qopgo $9685 3663 3724 qoprts $96ab 3724 3746 qplop $B9fl 1666 1680 qplus $a2eb 5873 5876 qprec $9616 3653 36 74 qprecl $963f 366 I 3675 qshft $al23 5521 5533 5564 qstatv $97c7 3973 3982

crossreference... seite 22 qstavr $99ea 4314 4317 qtyer2 $b618 8774 8794 8796 8817 8822 qtyerr $b71b 3457 8822 8955 8994 9011 9013 9025 9042 raddc $a655 6387 range $aff4 1592 782 I 7870 rdcn $bbaa 9170 9262 rddb $00c7 267 rdfn $bbc8 9210 9283 rdmov $b8e0 9301 9306 rdrto $b8ec 9271 9289 9308 rdy $b22d 8135 8162 read $8fea 372 2733 readst $bbdd 2663 2682 3048 3191 3195 3211 3986 9809 ready $85cO 913 923 1207 1677 2034 9754 9801 rearts $88af 1395 140 7 1410 1428 1431 1439 1445 1448 reasav $8885 1414 1417 reasnt $8Bb0 1330 1444 reason $8877 1338 1406 4618 4666 reasto $8890 1420 1423 reay $b0ba 7975 7980 recl $94d0 3450 3464 rec2 $94d3 3454 3465 rec3 $9HO 3466 3411 rec4 $94c8 3446 3457 3471 3413 rec5 $949b 3382 3434 3449 3468 3416 rec6 $94cb 3460 3419 reclen $b5d6 8732 8734 8783 recon $b5f4 8789 8798 recoo $b5e6 8781 8792 record $949e 405 3439 reddy $84de 600 805 rem $8c71 381 423 1515 2125 2137 remer $8d00 2252 2260 remn $8cfO 2137 2151 2244 remtxt $Bdl3 2255 2251 2262 ren $0004 258 267 268 rename $9552 414 3540 resoo $a907 6714 6716 rescnt $Be lf 23BO 2421 rescrl $Ba II 1705 1709 reseio $B964 1562 1566 rese20 $8965 1563 1581 rese30 $B970 1569 1572 rese40 $B978 1570 1573 rese60 $8988 156B 1582 resend $Be0e 2400 2412 reser $B951 149 7 1555 reserr $8ba5 1952 1974 resetc $9059 2 TB I 27B8 resho $0028 35 5355 5384 5386 5389 5578 reslo $002b 38 4764 4184 535B 5392 5529 res1st $80ef 360 479 resmo $002a 37 4741 4761 4781 5357 5391 resmoh $0029 36 5356 5390 resnum $8dfl 2383 2398 resrch $8a0e 1703 1710 ressnr $8d88 2336 2385 resswp $8dff 2382 2386 2~05 res to 1 $8b97 1775 1946 1964 restor $8b79 378 1946 restrz $Ba 17 1706 1708 resumo $Be01 2406 24 II

crossreference... seite 23 resum2 $8deb 2390 2394 resume $8dc4 425 2377 retrn $b269 8165 8194 8221 retu1 $Bcd2 2196 2209 return $Bcb8 380 2188 rfat $b882 9114 9236 rfata $b888 9237 9239 rid $b8bc 9168 9245 rightd $ab22 H9 7107 rleft $aafc 7079 7116 rleft1 $ab02 70 79 7083 rleft2 $ab06 7085 71H rleft3 $ab07 7086 7141 7149 rmulc $a651 6382 rnd $a659 435 6392 rnd1 $a67a 6393 6408 rnd10 $a666 6397 6399 rnd20 $a6a3 6427 6429 rndd $b1aa 8088 8091 8093 8096 rndrts $9f29 5180 5188 rndshf $9flb 5181 5704 rng100 $afff 7870 7871 7873 7878 rng200 $b019 7882 7888 rngerr $affc 7814 7884 7887 rngrts $b025 7890 7894 rolshf $9f90 5084 5264 5831 round Sa 1f2 2355 3708 5504 5626 5641 5682 5694 rrts $b301 8255 8258 8261 8263 8267 8284 8287 8306 rsca $b87d 9166 9230 rseed $bb21 9681 9708 rsfn $b8b4 9176 9271 rspa $b172 8069 8072 rt $b4b7 8523 8525 8527 8529 8531 8533 8535 rtts $b133 8041 8043 run $8c07 376 2060 run2 $8c12 2062 2068 runc $8a40 1061 1741 2063 runc2 $8c39 2069 2096 runm10 $8ba4 19 71 2075 runmod $Bell 2060 2014 2183 rusure $b95b 3384 34 II 3555 9383 rwrt $b898 9172 9254 rwrtl $bba1 9255 9258 sa $8bc0 1994 2007 sadi2 $aa33 6766 686 7 6934 6952 sadi3 $aa4d 6968 6998 sadh $aa59 6969 6971 6914 sadi8 $aa66 6956 6973 6984 6994 savl $b29c 8222 8229 8335 8404 savio $a9h 6764 6823 6866 savl2 $b0df 7196 7H9 79 71 8002 90H sav13 $91b6 2996 3016 6575 9040 9419 sav 14 $abl9 1517 7098 savl5 $ab18 6979 7092 7097 savl6 $ab21 7100 7102 savl7 $ab38 7119 7129 7736 savib SabBd 7121 7115 sav20 $b80b 3319 3327 3350 3367 91H sav3 $b9e8 9223 9454 sav30 $906b 2790 2799 3802 sav32 $9175 2948 2963 2914 sav4 I $a57e 5026 5193 6270

crossreference... seite 24 sav42 $8163 1202 1233 2392 savh $9bc6 4608 4628 4740 sav45 $9bcf 4608 4611 4614 sav47 $aac8 7036 7046 7088 sav60 $b599 8744 8150 8152 8777 sav61 $b719 8915 8993 sav1 $ae43 757 7 760 I 1605 sav73 $88a6 1435 2341 2741 sav74 $88a9 1436 1887 sav75 $9e3c 2613 2155 5033 sav16 $9e43 5035 5037 sav71 $b99c 3131 9419 9438 sav9 $938e 3261 3213 3281 savawo $a 116 5516 5519 5522 5525 5539 5541 save $bc0c 3098 9865 savenb $922e 3093 3359 savenp $921e 3081 3320 schsl $b093 1959 1962 scratc $9464 415 3409 scrath $8a29 400 1724 scrtch $8a2b 1125 9749 sctcl $9488 3423 3427 sctc2 $9492 3424 3428 sdpl $b81d 9156 9196 9209 9238 9310 sdp2 $b850 9180 9187 sdp3 $b859 9188 9195 sdp4 $b860 9190 9202 sdp5 $b862 9164 9182 9201 9231 9240 9249 9251 9261 9266 seedpt $008d 113 6394 6395 6423 6424 9652 9656 9682 sendp $b812 3180 3277 3563 9151 ser $b05f 1929 7936 setaut $904d 2716 2182 settop $bb18 1152 9699 sexp $b22e 8165 8181 8189 sfar $b3fb 8421 8439 sgn $a210 428 5725 sgnflg $0077 73 5814 5924 6355 6315 shfarg $a126 5535 5554 shftr2 $9f65 5234 5249 5250 shftr3 $9f86 5255 5269 shftr4 $9f8c 5256 5258 shftrt $9f9a 5254 5270 shiftr $9f79 5043 5248 5820 shpn $ble9 8073 8015 8132 sign $a202 1860 5313 5709 5725 5764 6392 signon $bb81 607 9759 signrt $a20f 5710 5718 5720 sin $a6ad 439 6441 6480 sinl $a6el 6456 6463 6497 sin2 $a6e4 6459 6464 sin3 $a6fl 6468 6470 sincon $a135 6517 sizeok $aaad 7030 7034 slock $0040 282 slrl $aeaf 1528 7648 76 75 slr2 $aec7 7688 7690 sner $b754 8993 9004 9034 9077 9090 9106 9113 snerr $97H 1279 2286 2595 2836 3166 3434 3691 3840 3891 3897 4213 4958 7815 7936 8457 8 778 9034 9317 9470 snerrl $87d8 1241 1254 1256 1275 1279 snerr2 $8f12 256 7 2595 snerr3 $8d37 2286 2314 2336

crossreference.... seite 25 snerr5 $9656 3632 3691 snerr6 $90b1 2831 2836 sngflt $9d37 4840 5009 7181 7198 7807 sno $026e 162 8010 8060 8104 8392 8394 8500 8503 soth $a9cd 6891 6894 sotl $a862 6673 6676 sots $8578 881 886 sperr $0010 280 spos $b483 8501 8504 8515 sqr $a537 434 6223 sqr05 $9fb6 5290 sqrzo $9fbb 5295 squeez $9f19 5160 5180 srq $0002 265 sswe $b 175 8059 8061 8073 stztxt $abf3 2792 3804 7ZH stack $0100 119 1293 1298 1300 1302 1308 1311 1314 1905 1917 1919 1921 1923 1925 2HZ 2455 2460 2461 4302 4531 4533 4536 4538 stasgn $98fT 4162 4164 4167 stkend $01fb 246 stkini $8a75 905 1780 stkrts $8a8f 1724 1747 1796 stmdsl $803b 376 4077 4079 stmdsp $8027 365 1264 1266 stoint $9d3f 4831 4845 4851 stold $a5c3 6301 6303 stolop $8692 1051 1055 stop $8ba8 382 19 79 stopc $8baf 1199 1620 1991 stopd $8bc3 1986 2010 stordo $9162 2960 2962 storst $bbde 9416 9810 storts $9d49 4856 4862 staut $bld3 8118 8119 stp $b0f3 8012 8022 stpz2 $8bab 1979 1985 stroio $a7e5 6597 6600 str020 $a7ed 6598 6601 str030 $a 7f5 6605 6609 str040 $a Tff 6606 6610 stradj $aa6c 6900 6992 strbnk $0004 293 strcmp $98c0 4125 4139 strd $a 7db H4 6592 strdnz $907f 2794 28 II strdon $8e97 2502 2528 strend $0039 H 1339 1340 1767 1768 4337 4338 4357 4359 4558 4560 4667 4668 4682 4686 4822 4825 6854 6858 7485 7488 s trf i I $a84a 6653 6660 strfiz $a84b 6659 6661 strfin $a846 6655 6658 strget $a839 6651 6657 strini $a805 6616 66 71 6889 7034 strlit $a81f 3803 3932 6637 7381 strlt2 $a827 279, 6642 s trna I $9988 4249 4255 strnam $99Tc 4234 4245 strp2 $b51f 8648 8653 strpj $b52b 8649 8656 strprt $b515 2502 2658 8643

crossreference.. seite 26 strrts $97Bd 3918 3925 3921 3931 strsiz $0004 zu strspa $8811 6602 6626 1058 7087 1279 strst2 $a85a 6667 6669 strtxt $96e1 2655 3802 stxbuf $a4b6 6144 6H8 stxfnd $9990 4259 4284 stxfor $8b0f 1877 1887 stxtpt $b4b8 I 741 3037 8543 stz $b2af 8239 8241 subflg $0014 25 I 795 1807 2924 4235 4247 4256 4885 subit $9e9Z 5089 5091 SUIIfll $aaf4 6930 6933 swalp $15e1 6318 6323 swe $0263 151 8012 8101 8 1Z7 8239 8398 8400 synchr $9732 1832 2111 2145 2343 2657 2929 3443 3881 4883 7942 sysbnk $DOOf 288 289 szer $b31d 8291 8312 tlber $Beea 2518 2521 2561 tabfcb $b1bf 91ZZ 9152 tabld $b7cb 9128 9163 tackyf $b616 8799 BBZ1 tagf $b24a 8180 8182 tag2 $bz55 8171 8179 8186 8190 tag3 $b21f 8180 8209 8211 tan $a6f8 HO 6477 tansgn $0259 143 3131 6460 6462 6479 6489 9122 tat $b3dz 8404 8410 "" tclose $bcl3 9377 9873 9889 tddb $003f 268 te $0002 251 261 268 telx $b328 8319 8389 te.npt $001d 30 1781 6678 6701 6707 6837 6839 7525 7645 9129 temps t $0020 32 6690 6696 6700 7531 7534 7649 76 78 768 I 7684 9644 9648 tenc $aod0 5482 timnum $ad3d 7394 7400 7409 7446 tlkr $0040 211 tmhour $0005 IZ 1325 1360 1399 7401 1402 1413 74ZZ 7439 tn~~~in $0006 13 7338 7431 tmpdes $0Za0 187 7724 773 I 7743 7796 7797 7798 7800 780 I 7802 tmptrp $OZ9d 184 871 2416 tmsec $0007 14 7309 7426 tmten $0008 15 732 7 7331 7333 7336 7341 7354 1412 7424 1429 7434 7436 toin $0002 277 toout $0001 276 trans $9578 3391 3415 3486 3494 3509 3526 3535 3545 3563 trap $8dl6 424 226 7 trapl $8dZ5 2269 2273 trapno $0296 IBO 866 812 875 1754 1992 ZZ71 2274 2417 trmno I $90b4 2830 2841 trmnok $9013 ZB 14 2829 trmok $9088 ZBIZ 2815 trmpos $0255 139 2564 2511 2951 2966 trnar $b86a 9158 9215 tryagz $ad55 7463 7517 tryagj SadS5 7470 7473 tryag4 $ad1b 7H9 7485 tryag5 $ad85 7487 7490 tryg $abb8 7214 72 I 7 trymor $8881 1408 ""

crossreference..... seite 27 tryoff $a09b tstdir $9d57 tstdun tstop tstrom turnon twopi txtbnk txtend $89bf $95de $baoc $9975 $a72b $0001 $002f txtptr $0085 txttab $002d typlin ucnupk uexp ulstn umlcnt umult umultc umultd unit unitl unit2 unpstk unstop uround userr usgn using usrpok utlkr val val I val2 valtyp $89cl $a05e $0265 $003f $9cf0 $9cc4 $9cd7 $9ccd $b72b $b59c $b6ea $968e $8bb6 $b2c0 $8ccd $0264 $b026 $0002 $005f $abae $abb6 $abd5 $00" 5437 864 4875 1632 3621 3913 4232 6507 290 40 1102 4809 84 122 I 1520 1924 2161 2389 2749 2822 3671 5978 8551 39 1968 5HI 1219 9383 1639 7043 3972 4241 1230 9413 2011 960 1331 7849 938 1222 1522 1926 2 I 79 2409 2770 2853 3884 7214 9511 1067 2169 970 1332 7850 939 1228 1524 2013 2182 2703 2771 2854 3887 7219 9513 1068 2 I 70 971 1733 7852 940 1236 1527 20" 2215 2705 2718 2936 4931 7222 9515 IIH 3010 9738 9743 9744 9746 1634 1910 153 274 4178 4650 4769 4743 8749 8749 8942 3726 1999 8074 1974 152 2511 II 5237 273 H5 7207 1228 22 16H 5403 8039 4187 4127 4188 4764 8969 8760 8969 3728 2000 8096 2176 8037 7902 431 5238 7206 7213 7230 2104 8049 4159 900 I 8992 8252 2203 8085 5095 5239 8055 9009 8 I 18 5096 5241 2074 973 1736 7853 1009 1237 1535 2049 2211 2708 2799 2938 4933 7221 9542 1148 3011 8019 8199 5098 5264 3075 975 30H 7862 1051 1239 1531 2050 2229 2716 2800 3603 4938 7247 I 727 308 I 8169 8201 5099 5265 3228 980 3045 1202 1458 1546 2086 2230 2719 2804 3605 4941 7248 1729 3082 8174 8381 5101 5266 3393 1017 3087 1205 1460 1563 2088 2232 2742 2815 3606 4964 7249 1731 8546 8374 5102 9716 3417 1018 3088 12 II 1476 1822 2124 2252 2743 2816 3668 4966 85H 1734 8549 8385 5234 4861 110 I 4806 12" 1504 1824 2160 2254 2748 2821 3670 5976 8548 1965 9737 5236 2346 2527 2773 3643 3665 3756 3909 4140 4217 4231 4515 4549 4794 4852 6711 7186 7946 8626 varbnk $0003 291 varnam $004f 54 3907 3908 4209 4239 4240 4245 4267 4271 4311 4312 4435 4438 4519 4521 4525 4527 4566 4569 4610 varok $9a0a varpnt $0051 4622 4626 4739 4328 4333 55 2930 2932 2934 4753 4913 4917 4918 4947 6137 6149 H62 H63 4922 4924 H65 4928 4746 4929 vartab $0031 " 1765 1766 4257 4258 9735 9736 varyo $90d8 2861 2867 vf $0268 156 8044 8062 8068 8098 8133 8464 8476 4751 HH

crossreference..... seite 28 vn $0266 154 8030 8094 8099 8111 8125 8134 8143 8154 8286 waiter $9168 2964 2967 warm $bbcc 332 9795 xbkerr $93e9 3337 3342 xcnt $000f 20 2413 3182 3218 3224 3227 8871 8889 9151 9157 xeqcm $8 751 1181 1238 1240 12 76 xeqcm2 $87aa 1246 2292 xeqcm3 $87a8 1191 1245 2132 xeqdir $8757 357 947 1191 xit $balc 9415 9U4 xrfn $b8da 9278 9294 xspac $8f03 2569 2582 xspac2 $8f04 2583 2586 zeremv $a0bl 5434 5H1 5456 zerita $9c3c 46H 4676 4679 zeroft $9edc 5139 6234 zerofc $9eda 5138 5172 5458 7208 zeroml $9ede 5HO 5H5 zerot $b369 8355 8399 zerrts $9eH 5038 5063 zout $b32d 8318 8322 8359 zxit $949a 3412 3418 3431

5. TEIL ASSEHBLERLISTING 2 CBH 6101710 OPERATINGSYSTEH

b7!0os.lib... seite 0001 zeile adr. obj.-code source-code pass I 0004.lib b7!0os.lab 0191.lib btioos. io 0468.lib btioos. con 0563.lib editor! 1374 eud.lib editor2 2183 e985.lib editor3 2631 edoc.lib monitor 3270 flc3.lib kernal! 3914 f67f.lib kernal2 4694 fb34.lib kernal3 pass 2 000! 6!0/710 Operatingsystem library-file 0002 0003 0004.lib b7!0os.lab

610/710 os label-def. hard+soft ass/reass... seite 0002 zeile adr. obj.-code source-code 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 OOH 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 ===> externe zero-page-label <=== e6509 i6509 usrpok fnadr sal sah sas eal eah eas stal stah stas status fnlen la fa sa dftln dflto tape! ribuf stkey c3po bsour ipoint pch pcl sp xi6509 invh invl tmpl tmp2 tmpc t6509 ddisk pkybuf keypnt sedsal sedeal pnt tblx pntr grmode lstx lstp lsxp crsw ndx qtsw insrt config indx $00 $01 $02 $90 $93 $94 $95 $96 $97 $98 $99 $9a $9b $9c $9d $9e $9f $ao $a1 $a2 $a3 $a6 $a9 $aa $ab $ac $ae $af $b4 $b5 $b7 $b8 $b9 $bb $bd $be $bf $c0 $c2 $c4 $c6 $c8 $ca $cb Sec $cd $ce $cf $d0 $dl $d2 $d3 $d4 $d5 6509 execution register 6509 indirection register jmp code für usr"-routine addrl akt. filename addrl akt. Load/store adresse addrh akt. Load/store adresse bank akt. Load/store adresse addrl ende akt. Load/store addrh ende akt. Load/store bank ende akt. Load/store addrl anfang akt. Load/store addrh anfang akt. load/store bank anfang akt. Load/store i/o operation status länge akt. filename akt. logische Filenummer akt. primäradresse lgeräte-nummerl akt. Sekundäradresse vorgabe input-grätenummer vorgabe output-gerätenummer addrl kassettenpuffer addrl rs232 eingabe-puffer stop tasten flag ieee puffer flag ieee zeichen puffer addrl ram indirekt-painter addrh programmzähler pc addrl programmzähler pc stack-pointer sp alte indirection bank addrh user interrupt-vektor addrl user interrupt-vektor addrl monitor zwei-byte zeiger I addrl monitor zwei-byte zeiger 2 ablage letzter monitor-befehl laufende 6509 indirection bank lfd. disk-primäradr. für monitor addrl start programmierbare tasten addrl akt. pgm tastenpuffer addrl scroll-zeiger start addrl scroll-zeiger ende addrl zeiger auf akt. zeichen im video-ram cursor zeile cursor spalte flag für grafik/text-modus index letztes zeichen screen edit Startposition letzte position lzeilel flag er bei bs-eingabe anzahl bytes im tastaturpuffer flag für anführungszeichen-modus insert flag cursor type I char. vor blinken position letztes zeichen in zeile

610/710 os 1abe1-def. hard+soft ass/reass.... seite 0003 zeile adr. obj.-code source-code 0063 0064 0065 0066 0067 0068 0069 0010 0071 0012 0013 0014 0015 0016 0017 0078 0019 0080 0081 0082 0083 0084 0085 0086 0081 0088 0089 0090 0091 0092 0093 0094 0095 0096 0091 0098 0099 0100 0101 0102 0103 0104 0105 0106 0101 0108 0109 0110 0111 0112 0113 0114 0115 0116 0117 0118 0119 0120 kyndx rptcnt delay sedtl sedt2 adata sctop scbot sclf scrt modkey norkey bitabl $d6 $d1 $d8 $d9 $da $db $dc $dd $de $df $e0 $el $e2 ===> externe ram-label <=== stack buf cinv cbinv nminv iopen iclose ichkin ickout iclrch ibasin ibsout istop igetin iclall iload isave usrcmd escvec ctlvec isecnd itksa iacptr iciout iuntlk iunlsn ilistn italk lat fat sat lowadr hiadr memstr memsiz timout verck ldtnd msgflg t I t2 $0100 $0200 $0300 $0302 $0304 $0306 $0308 $030a $030c $030e $0310 $0312 $0314 $0316 $0318 $031a $031c $031e $0320 $0322 $0324 $0326 $0328 $032a $032c $032e $0330 $0332 $0334 $033e $0348 $0352 $0355 $0358 $035b $035e $035f $0360 $0361 $0363 $0364 zeichenzähler für pgm tastenbefehl zeit zwischen zeichen bei repeat zeit bis zum einsetzen des repeat mehrfach benutzte editorvariable mehrfach benutzte editorvariable akt. ausgabezeichen oberste zeile bildschirm I0-25) unterste zeile bildschirm 10-25) linker rand bildschirm rechter rand bildschirm flag shift/control-taste flag normale taste tabe11e basic-doppelzeilen 14 byte) 6509 cpu-stack basic input-puffer -$2ff addrl irq vector addrl brk-vector addrl nmi-vector addrl open file-vector addrl close-vector addrl open eingabekanal-vector addrl open ausgabekanal-vector addrl close kanal-vector addrl eingabe akt. kanal-vector addrl ausgabe akt. kanal-vector addrl prüfe stoptaste-vector addrl char aus tast.-puffer vector addrl alle files schliessen-vector addrl lade vom file-vector addrl save auf file-vector addrl monitor erweiterung-vector addrl user esc-tasten-vector addrl unbenuzte ctrl tasten-vector addrl ausgabe sek.adr. nach listen addrl akt. sekundäradr. auf iec-bus addrl zeichen von iec-bus nach ac addrl ac auf iec-bus ausgeben addrl untalk auf iec-bus ausgeben addrl unlisten auf iec-bus ausgeben addrl listen auf iec-bus ausgeben addrl talk auf iec-bus ausgeben tabelle akt. log. file # 110 byte) tabelle akt. primäradr. tabe11e akt. sekundäradr. addrl anfang des system speichers addrl ende des system speichers addrl anfang des benutzer speichers addrl ende des benutzer speichers ieee timeout enable flag load/verify flag zeiger in file-tabellen message flag kernalvariable temporär kernalvariable temporär

610/710 os label-def. hard+soft ass/reass..... seite 0004 zeile adr. obj.-code source-code 0121 0122 0123 0124 0125 0126 0127 0128 0129 0130 0131 0132 0133 0134 0135 0136 0137 0138 0139 0140 0141 0142 0143 0144 OIH 0146 0147 0148 OIH 0150 0151 0152 0153 0154 0155 0156 0157 xsav savx alarm itape relsal relsah relsag cas 1 m51ctr m51cdr rsstat dcdsr ridbs ridbe pkyend keyseg keysiz rvs lintmp 1stehr insflg scrdis bitmsk keyidx logscr bellmd pagsav tab keyd funvec sedt3 evect ipjtab ipptab $0365 $0366 $0369 $036a $036f $0370 $0371 $0375 $0376 $0377 $031a $037b $037c $037d $0380 $0382 $0383 $0397 $0398 $0399 $039a $039b $039c $039d $039e $039f $03a0 $03a 1 $03ab $03b5 $03b7 $03f8 $0810 $0910 ===> externe rom-label <=== 0158 0159 pulstl = $9691 0160 0161 0162 ===> bildschirm-label <=== 0163 0164 0165 0166 016 7 0168 0169 0170 0171 0112 0173 01H 0175 0176 0177 0118 linzo linzl linz2 linz3 linz4 linz5 linz6 linzt linz8 linz9 linzio linzll linzl2 linzl3 linzl4 $d000 $d050 $doao $d0f0 $dl40 $dl90 $dle0 $d230 $d280 $d2d0 $d320 $d310 $d3c0 $d410 $d460 kernalvariable temporär kernalvariable temporär flag für irq von 6526 addrl indir. cassette addrl variable start-load-adr. addrh variable start-load-adr. bank variable start-load-adr. cassette switchflag rs232: kopie 6551 control-reg. rs232: kopie 6551 command-reg. rs232: akt. rs232-status rs232: letzter dcd/dsr wert rs232: eingabe start zeiger rs232: eingabe end zeiger addrl endadr. funkt.tastenpuffer ram-segment I für funktionstasten funktionstasten (20bytesl revers flag puffer für bs-zeilen I letztes gedrucktes zeichen auto insert flag scroll disable flag bit mask/funkt.tasten temporär index programmierbare befehle logical/physical scroll flag flag für glocke am zeilenende zeitweise ram page tabstop flags (max. 10byt/80bitl tastaturpuffer (10 bytesl addrl ind. jmp für funktionstasten temporär list funktionstasten addrl warmstart-vector coprozessor-jump tabelle coprozessor-parameter tabelle bildschirm-adr. zeile bildschirm-adr. zeile 2 bildschirm-adr. zeile 3 bildschirm-adr. zeile 4 bildschirm-adr. zeile 5 bildschirm-adr. zeile 6 bildschirm-adr. zeile 7 bildschirm-adr. zeile 8 bildschirm-adr. zeile 9 bildschirm-adr. zeile 10 bildschirm-adr. zeile 11 bildschirm-adr. zeile 12 bildschirm-adr. zeile 13 bildschirm-adr. zeile 14 bildschirm-adr. zeile 15

610/710 OS label-def. hard+soft ass/reass.... seite 0005 zeile adr. obj. -code source-code 0179 linzl5 $d4b0 bildschirm-adr. zeile 16 0180 linzl6 $d500 bildschirm-adr. zeile I 7 0181 linzl7 $d550 bildschirm-adr. zeile 18 0182 linzl8 $d5a0 bildschirm-adr. zeile 19 0183 linzl9 $d5f0 bildschirm-adr. zeile 20 0184 linz20 $d640 bildschirm-adr. zeile 21 0185 linz21 $d690 bildschirm-adr. zeile 22 0186 linz22 $d6e0 bildschirm-adr. zeile 23 0187 linz23 $d730 bildschirm-adr. zeile 24 0188 linz24 $d780 bildschirm-adr. zeile 25 0189 0190.end 0191.lib b710os.io

610/710 input/output hard+soft ass/reass.... seite 0006 zeile adr. obj.-code source-code 0193 0194 0195 0196 0197 0198 0199 0200 0201 0202 0203 0204 0205 0206 0201 0208 0209 0210 0211 0212 0213 0214 0215 0216 0211 0218 0219 0220 0221 0222 0223 0224 0225 0226 0221 0228 0229 0230 0231 0232 0233 0234 0235 0236 0231 0238 0239 0240 0241 0242 0243 0244 0245 0246 0247 0248 0249 0250 ===> 6509 microprozessor <=== dieser mikroprozessor unterscheidet sich von seinem bekannten bruder 6502 nur durch die möglichkeit, I megabyte zu adressieren. der befehlssatz ist identisch. es werden beim 6509 lediglich bei zwei befehlen alle 20 adressleitungen ausgewertet lzero-page byte 0/IJ, die verwendete taktfrequenzist verdoppelt 12 mhzj. ===> 6845 video display controller 'vdc" bzw. <=== ===> 6545 cathode ray tube controller 'crtc" <=== mit dem 'vdc' wird die bildschirmausgabekontrolliert und verwaltet. er ist das bindeglied zwischen dem bildschirmspeieher und bildschirm. vdc adreg dareg $d800 0 mögliche werte des adress-registers -- basis-adresse des 6845-vdc/6545-crtc adress-register daten-register roo 0 horizontal total roi horizontal displayed r02 2 horizontal synch position r03 3 horizontal + vertical synch widths r04 4 vertical total r05 5 vertical total adjust r06 6 vertical displayed r07 vertical synch position r08 8 mode control r09 9 scan line rio 10 cursor start rll II cursor end r12 12 addrh display start address rl3 13 addrl display start address rl4 addrh cursor position rl5 " 15 addrl cursor position rl6 16 addrh light-pen rl7 I 7 addrl light-pen ===> 6581 sound interface device 'sid' <=== dieser dreistimmige synthesizer bietet umfangreiche möglichkeiten zur erzeugung von tönen und musik. es kann fur jeden der drei Oszillatoren die wellenform, frequenz, Lautstärke, anstiegs- und abfallzeit, sowie ein filter programmiert werden. sid = $da00 Offsetadressen der oszillatoren oscl osc2 0 7 basis-adresse des 6581-sid offset-adresse 6581-oszillator offset-adresse 6581-oszillator 2

610/710 input/output hard+soft ass/reass.... seite 0007 zeile adr. obj.-code source-code 0251 0252 0253 0254 0255 0256 0257 0258 0259 0260 0261 0262 0263 0264 0265 0266 0267 0268 0269 0270 0271 0272 0273 0274 0275 0276 0277 0278 0279 0280 0281 0282 0283 0284 0285 0286 0287 0288 0289 0290 0291 0292 0293 0294 0295 0296 0297 0298 0299 0300 0301 0302 0303 0304 0305 0306 osc3 = 14 register der oszillatoren freqlo freqhi pulsef pulsec oscctl atkdcy susrel 0 2 3 4 5 6 Offsetadressen filter fclow fchi resnce volume 21 22 23 24 restliche offsetadressen potx poty random cenv3 25 26 27 28 offset-adresse 6581-oszillator 3 addrl frequenz oszillator addrh frequenz oszillator addrl pulsbreite oszillator addrh pulsbreite oszillator Steuerregister oszillator attack/decay-time oszillator sustain/release time oszillator addrl filterfrequenz addrh filterfrequenz filter-wahlschalter und resonanzeinstellung lautstärkeregler Wahlschalter tief-, band-, hochpab a/d-wandler I a/d-wandler 2 rauschgenerator hüllkurvengeneratot ===> 6526 complex interface adapter "cia" <=== die zwei eingebauten "complex interface adapter" steuern über ihre ports die angeschlossenen einheiten (z.b. user-port, ieee-daten, coprozessor "z80 zilog" und "8088 intel"). in den "6526" stehen auch noch zwei 16-bit-zähler und eine 24-stunden-uhr zur verfügung. Offsetadressen der register pra 0 6526 cia periph. data reg. a (pra J prb I 6526 cia periph. data reg. b (prb) ddra 2 6526 cia data direct. reg. a (ddra) ddrb 3 6526 cia data direct. reg. b (ddrb) talo 6526 cia timer a lo reg. (ta loj tahi 5 ' 6526 cia timer a hi reg. (ta hi) tblo 6 6526 cia timer b lo reg. (tb lo) tbhi 7 6526 cia timer b hi reg. (tb hi) todio B 6526 cia uhrzei t: 1/10 sek. reg. todsec 9 6526 cia uhrzeit: sekunden reg. todmin 10 6526 cia uhrzeit: minuten reg. todhr II 6526 cia uhrzeit: std. am/pm reg. sdr 12 6526 cia serial data register (sdr) icr 13 6526 cia irq control reg. ( icrj cra 6526 cia control register a (cra J erb 15 6526 cia control register b /erb) " ===> cia, für coprozessor-communication (z80/8088) <===

6101710 inputloutput hard+soft asslreass...... seite 0008 zeile adr. obj.-code source-code 0307 0308 ipcia = $db00 basis-adresse cia I 0309 0310 belegung der einzelnen bits -- 0311 0312 pra = data port 0313 0314 0315 0316 0311 0318 0319 0320 0321 0322 0323 0324 0325 0326 0327 0328 0329 0330 0331 0332 0333 0334 0335 0336 0337 0338 0339 0340 0341 0342 0343 03H 0345 0346 0341 0348 0349 0350 0351 0352 0353 0354 prbo: busyl II => 6509 off dbusj prbl: busy2 II => 8088lz80 off dbusj prb2: signalflag 8088lz80 prb3: signalflag 6509 prb4: unbenutzt prb5: unbenutzt prb6: irq to 8088lz80 llo) prb1: unbenutzt bit-offset port b sem88 sem65 4 8 prb bit2 prb bit3 ===> cia 2 für ieee-daten, user-port, spiele usw. <=== cia = $dc00 basis-adresse cia 2 belegung der einzelnen bits -- timer a: ieee local I cass. local I music I game timer b: ieee deadm I cass. deadm I music I game prao: pra I: pra2: pra3: ieee data I I ieee data2 ieee data3 ieee data4 pra4: ieee data5 pra5: ieee data6 pra6: ieee data7 pra7: ieee data8 I I I I I I I prbo: user I game 10 prbl: user I game II prb2: user I game 12 prb3: user I game 13 prb4: user I game 20 prb5: user I game 21 prb6: user I game 22 prb7: user I game 23 0355 0356 flag: user I cassette read 0351 pc user 0358 ct user 0359 oooo sp user 0360 0361 0362 ===> 0363 ===> 0364 user I paddle game user 1 paddle game 2 user user user user user I game trigger 14 user I game trigger 24 6551 asynchronius communications interface adapter <=== ac~a rs 232-c Schnittstellen-controller <===

6101710 inputloutput hard+soft asslreass.... seite 0009 zeile adr. obj.-code source-code 0365 0366 0367 0368 0369 0370 037, 0372 0373 0374 0375 0376 0377 0378 0379 0380 0381 0382 0383 0384 0385 0386 0387 0388 0389 0390 0391 0392 0393 0394 0395 0396 0397 0398 0399 0400 0401 0402 0403 0404 0405 0406 0407 0408 0409 0410 04" 0412 0413 0414 0415 0416 0417 0418 0419 0420 042, 0422 dieserbausteinübernimmt diesteuerungder 'rs 232-c' Schnittstelle. es sind Übertragungsraten von 50 bis 19200 baud einstellbar. er Überwacht den datentransfer und wandelt die zu Übertragende information in das gewünschte format (bit, parität usw.j um. acia = $dd00 offset-adressen der register drsn srsn cdr ctr 0, 2 3 basis-adresse 6551 acia ===> 6525 triport interface device 'tpi' <=== data register lwritelread) reset bei write, status bei read command-register control-register dieser baustein verfügt Über 24 eingabelausgabe- und 2 handshakeleitungen, sowie 5 unterbrechungseingängen. es werden damit die tastatur und der ieee-bus kontrolliert. offset-adressen der register pa 0 port register a pb port register b pc 2 port register c ddpa 3 data direction register a ddpb 4 data direction register b ddpc 5 data direction register c creg 6 control register air active interrupt register ===> 6525 triport I für ieee-control <=== network I vic I irq tri I $de00 basis-adresse triport I belegung der einzelnen port-bits pao: ieee dc control pa I: ieee te control pa2: ieee ren pa3: ieee atn pa4: ieee dav pa5: ieee eoi pa6: ieee ndac pa 7: ieee nrfd I ti partsj lti partsj pbo: ieee ifc pb1: ieee srq pb2: network transmitter enable pb3: network receiver enable pb4: arbitration logic switch pb5: cassette write pb6: cassette motor ltlrj

610/710 input/output hard+soft ass/reass...... seite 0010 zeile adr. obj.-code source-code 0423 pb7: cassette switch 0424 0425 irqo: 50/60 hz irq 0426 irq I: ieee srq 0427 irq2: 6526 irq 0428 irq3: loptj 6526 inter-processor 0429 irq4: 6551 0430 0431 0432 ===> 6525 triport 2 für keyboard 0433 und vic 16k control <=== 0434 0435 tri2 $df00 basis-adresse triport 2 0436 0437 belegung der einzelnen bits 0438 0439 pao: keyboard out 8 OHO pa I: keyboard out 9 OHI pa2: keyboard out 10 OH2 pa3: keyboard out II OH3 pa4: keyboard out 12 04H pa5: keyboard out 13 OH5 pa6: keyboard out 14 OH6 pa 7: keyboard out 15 OH7 OH8 pbo: keyboard out 0 OH9 pbl: keyboard out I 0450 pb2: keyboard out 2 0451 pb3: keyboard out 3 0452 pb4: keyboard out 4 0453 pb5: keyboard out 5 0454 pb6: keyboard out 6 0455 pb7: keyboard out 7 0456 0457 pco: keyboard in 0 0458 pcl: keyboard in I 0459 pc2: keyboard in 2 0460 pc3: keyboard in 3 0461 pc4: keyboard in 0462 pc5: keyboard in 5 0463 0464 pc6: vic 16k bank select low 0465 pc7: vic 16k bank select hi 0466 0467.end 0468.lib b710os.con

610/710 konstanten hard+soft ass/reass..... seite 0011 zeile adr. obj.-code source-code 04 70 0471 0472 0473 0474 0475 0476 0477 0478 0479 0480 0481 0482 0483 0484 0485 0486 0487 0488 0489 0490 0491 0492 0493 0494 0495 0496 049 7 ===> ascii- und asc-codes <=== ===> H er clrscr home eom $0a $Od IH 197 $80 system-konstanten und parameter <=== forsiz numlev bufsiz addprc addpr2 addpr4 addpr8 stkend clmwid pi strsiz ptrsiz numtmp 19 26 161 I addprc+addprc addpr2+addpr2 addpr4+addpr4 $0 lfb 10 $ff 0498 ===> ieee-konstanten und parameter <=== 0499 0!500 0501 0502 0503 0504 0505 0506 0507 0508 0509 0510 0511 0512 0513 05" 0515 0516 0517 0518 0519 0520 0521 0522 0523 0524 0525 dc te ren attn dav eoi ndac nrfd ifc srq rddb tddb eoist tlkr lstnr utlkr ulstn toout toin eoist nodev sperr 3 3 $01 $02 $04 $08 $!0 $20 $40 $80 $01 $02 ascii für "line feed" ascii für "carriage return asc für clear screen asc für cursor home end-of-message-kennung erstes byte für stack spaltenbreite für tabulation basic-token für pi anzahl speieherstellen für string-descriptor anzahl speieherstellen für speicher-zeiger 75160/75161 control line 75160/75161 control line remote enable attention data available end or identify not data accepted not ready for data interface clear service request nrfd+ndac+te+dc+ren direction for receiver eoi+dav+attn te dc ren direction for transmit $40 $40 $20 $5f $3f $01 $02 $40 $80 $!0 eoi status test device is talker device is listener device untalk device unlisten timeout status on output timeout status on input eoi on input no device on bus verify error mit

610/710 konstanten hard+soft ass/reass..... seite 0012 zeile adr. obj.-code source-code 0526 0521 0528 0529 0530 0531 0532 0533 0534 0535 0536 0531 0538 0539 0540 0541 0542 0543 0544 0545 0546 0541 0548 0549 0550 0551 0552 0553 0554 0555 0556 0551 0558 0559 0560 0561 ===> ===> ===> 0562 0563 ---> slock $40 dibf $80 vorbelegte speicher-segmente sysbnk mxbank txtbnk varbnk arybnk strbnk $0f sysbnk+l 1 3 2 dos-interface-konstanten <=== dosfnl dosdsk doslfn dosctl dos1st 16+2 8 14 screen editor lock-out data in output buffer <=== 21 dosfnl+dosfnl+dosfnl+16 nummer der system-bank erste nicht erreichbare bank bank für basic-programme bank für einfache variablen (256k-versionl bank für variablenfelder (256k-versionl bank für strings (256k-versionl länge von filenamen vorgabewert für disc-gerätenummer dos internal logical file nummer kernal coprozessor communications-variablen <=== ipb ipbsiz $0800 13 offsets im ipc-puffer ipccmd 0 ipcjmp 1 ipcin 3 ipcout ipcdat 5.end.lib edi tor 1 <--- basisadresse ipc-puffer kernal inter process communication puffer-länge ipc befehl ipc sprung-adresse anzahl ipc eingabe-bytes anzahl ipc ausgabe-bytes ipc data-puffer (8 bytesl

610/710 os-editorl hard+soft ass/reass.... seite 0013 zeile adr. obj.-code source-code 0565 0566 = $e000 0567 0568 0569 eooo eooo eooo ===> "jmp sprung-tabelle <=== 0570 eooo 4c 09 ee jmonon jmp monoff 0511 0512 e003 e003 ea nop 0513 e004 0574 e004 4c 44 eo jcint jmp eint 0515 e001 0576 e001 4c fe eo jlp2 jmp lp2 0577 eooa 0578 0519 eooa eood 4c 79 e I jloop5 jmp loop5 0580 0581 eood eoio 4c 99 e2 jprt jmp prt 0582 0583 eoio e013 4c 3f eo jscror jmp scrorg 0584 e013 4c 65 e8 jkey jmp key 0585 e016 0586 e016 4c da eo jmvcur jmp movcur 0581 e019 0588 e019 4c 25 eo jplot jmp plot 0589 0590 eoic eoic 4c Ja eo jiobas jmp iobase 0591 0592 eo lf eoif 4 c 70 e9 jescrt jmp escape 0593 e022 0594 e022 4c f8 e6 jfunky jmp keyfun 0595 e025 0596 e025 monitor-kaltstart {basic aus) bildschirm-, funkt.tasten-reset zeichen aus tastenpuffer in ac char von bs holen {get o. inputl zeichen aus ac auf bildschirm max.anzahl: spalten=xr, zeilen=yr tastatur lesen/in puffer schreiben cursor-pos. in reg. 14/15 vdc 6851 akt. x,y-pos. des cursors lesen I schreiben basisadr. ilo-gerät nach xr/yr bearbeitung von escape-funktionen vector für funktionstasten 0597 e025 ===> akt. x,y-pos. des cursors lesen I schreiben <=== 0598 e025 0599 e025 bo Oe plot bcs rdplt 0600 e021 86 ca stx tblx 0601 e029 86 cf stx lsxp 0602 e02b 84 cb sty pntr 0603 e02d 84 ce sty lstp 0604 e02f 20 cd eo jsr stupt 0605 e032 20 da eo jsr movcur 0606 e035 0607 e035 0608 e035 0609 e035 0610 e035 06 II e037 0612 e039 0613 e03a ===> cursorzeile in xr, spalte in yr <=== a6 ca a4 cb 60 rdplt ldx tblx ldy pntr rts cursorzeile in xr, spalte in yr cursor zeile letzte position lzeilel cursor spalte screen edit startposition bs-zeiger auf cursor-zeile cursor-pos. in reg. 14/15 vdc 6851 cursor zeile cursor spalte 0614 e03a 0615 e03a ===> basisadr. i/o-gerät nach xr/yr <=== 0616 e03a 0617 eoja a2 oo iobase ldx 1$00 0618 e03c ao dc ldy l$dc 0619 e03e 60 rts 0620 e03f 0621 efl3f

610/710 os-editor1 hard+soft ass/reass...... seite 0014 zeile adr. obj.-code source-code 0622 e03f ===> max. anzahl spalten nach xr, zeilen nach yr <=== 0623 e03f 0624 0625 0626 e03f e041 e043 0621 eoh 0628 eoh a2 50 ao 19 60 scrorg ldx #$50 ldy #$19 rts 0629 e044 ===> bildschirm-, funkt.tasten-reset <=== 0630 eoh 0631 eoh 0632 e046 0633 e048 0634 e04a 0635 e04b 0636 e04d 0637 eoh 0638 e052 0639 e053 0640 e055 0641 e057 0642 e059 0643 e05b 0644 e05d 0645 e05f 0646 e062 0647 e064 0648 e06 7 0649 e069 0650 e06b 0651 e06d 0652 e070 0653 e073 0654 e076 0655 e079 0656 e07b 0657 e07d 0658 e07f 0659 e082 0660 e084 0661 e087 0662 e088 0663 e08a 0664 e08c 0665 e08d 0666 e08f 0667 e091 0668 e094 0669 e094 a9 00 a2 23 95 c2 ca 10 fb a2 20 9d 97 03 ca 10 fa a9 Oe 85 d8 a9 60 85 d4 a9 2a 8d b5 03 a9 e9 8d b6 03 a5 co 05 c 1 do 3d ad 55 03 8d 80 03 ad 56 03 8d 81 03 a9 40 a2 oo ao 02 20 81 ff bo 26 8d 82 03 e8 86 co do 01 c8 84 c1 ao 39 20 82 e2 eint lda #$00 ldx #$23 cloop1 sta keypnt,x dex bpl cloop1 ldx #$20 cloop2 sta rvs,x dex bpl cloop2 lda #$Oe sta delay lda #$60 sta config lda #$2a sta funvec lda #$e9 sta funvec+1 lda pkybuf ora pkybuf+1 bne noroom lda hiadr sta pkyend lda hiadr+1 sta pkyend+1 lda #$40 ldx #$00 ldy #$02 jsr kalloc bcs noroom sta keyseg inx stx pkybuf bne room10 iny room10 sty pkybuf+1 ldy #$39 jsr pagst2 addrl akt. pgm tastenpuffer revers flag 0670 e094 ===> 10 Funktionstasten vorbesetzen <=== 0671 e094 0672 e094 0673 e097 0674 e098 0675 e09a 0676 e09c 0677 e09f 0678 eoa 1 0679 e0a4 b9 2d ec 88 91 co do f8 20 91 e2 ao oa b9 23 ec 99 82 03 kyset1 lda keydef-l,y dey sta lpkybufl,y bne kyset1 jsr pagres ldy #$0a kyset2 lda keylen-2+1,y sta keyseg,y zeit bis zum einsetzen des repeat cursor type I char. vor blinken addrl ind. jmp für funktionstasten addrh ind. jmp für funktionstasten addrl start programmierbare tasten addrh start programmierbare tasten addrl ende des system speichers addrl endadr. funkt.tastenpuffer addrh ende des system speichers addrh endadr. funkt.tastenpuffer allocation-routine ram-segment # für Funktionstasten addrl start programmierbare tasten addrh start programmierbare tasten segment funktionstasten setzen tab. 1 funktionstastenbefehle -1 addrl start programmierbare tasten 10 Funktionstasten vorbesetzen segment zurücksetzen ram-segment # für Funktionstasten

610/710 os-editorl hard+soft ass/reass..... seite 0015 zeile adr. obj.-code source-code 0680 eoa 7 88 0681 e0a8 do f7 0682 eoaa 20 c7 e9 0683 eoad 0684 eobo 0685 eob3 0686 e0b3 0687 e0b3 0688 e0b3 0689 e0b3 0690 e0b6 0691 e0b9 0692 eobc 0693 eobe 0694 eobf 0695 eocl 0696 eoc I 20 51 e2 20 60 e2 dey bne kyset2 noroom jsr sreset jsr txcrt jsr crtint ===> bildschirm löschen <=== 20 cl eo 20 Cf eo 20 27 e2 e4 dd eb 90 f5 clsr clsio jsr nxtd jsr scrset jsr clrln cpx scbot inx bcc clsio 0697 eocl ===> home-position setzen <=== 0698 eocl a6 dc 86 ca 86 cf a4 de 84 cb 84 ce nxtd stuio ldx sctop stx tblx stx lsxp ldy sclf sty pntr sty lstp 0699 0700 0701 0702 0703 0704 0705 0106 0707 eocl e0c3 e0c5 e0c1 eoc9 eocb eocd eocd eocd ===> bs-zeiger auf cursor-zeile <=== 0708 eocd 0709 eocd a6 ca 0110 eocf 0711 eocf stupt ldx tblx bs-fenster auf volle grösse (home-homel textmodus setzen crt-controller programmieren home-position setzen bs-zeiger setzen,zeilenoffset=xr bs-zeile löschen unterste zeile bildschirm (0-251 oberste zeile bildschirm (0-251 cursor zeile letzte position lzeilel linker rand bildschirm cursor spalte screen edit Startposition cursor zeile 0712 eocf ===> bs-zeiger setzen.zeilenoffset=xr <=== 0713 eocf 0714 eocf bd b2 eb scrset lda ldtb2,x 0115 e0d2 85 cb sta pnt 0716 e0d4 bd cb eb lda ldtbl,x 0717 e0d7 85 c9 sta pnt+l 0118 e0d9 60 0719 eoda 0120 eoda 0721 eoda ===> cursor-pos. in reg. 14/15 vdc 6851 <=== 0122 eoda 0723 0124 0725 eoda eodc eodd ao Of 18 a5 c8 movcur ldy 1$0f clc lda pnt 0726 0727 0128 0729 0730 0731 0732 0733 eodf eoel e0e4 e0e7 eoeb eoeb eoee eofo 65 cb Be 00 d8 8d 01 d8 88 Be 00 d8 ad 01 db 29 f8 85 d9 rts adc pntr sty vdc+adreg sta vdc+dareg dey s ty vdc ~adreg lda vdc+dareg and l$f8 sta sedtl tab. anfangs-addrl bs-zeilen addrl zeiger auf akt. zeichen im video-ram tab. anfangs-addrh der bs-zeilen addrh zeiger auf akt. zeichen im video-ram addrl zeiger auf akt. zeichen im video-ram cursor spalte 6845 vdc: adress-reg. 6845 vdc: daten-reg. 6845 vdc: adress-reg. 6845 vdc: daten-reg. mehrfach benutzte editorvariable

610/710 os-editorl hard+soft ass/reass.... seite 0016 zeile adr. obj.-code source-code 0735 0736 0737 0738 0739 OHO OH I e0f2 eoh e0f6 eofb eofa eofd eofe eofe a5 c9 69 00 29 07 05 d9 Bd 01 db 60 lda pnt+ 1 adc 1$00 and 1$07 ora sedtl sta vdc+dareg rts 0742 eofe ===> zeichen aus tastenpuffer in ac <=== 0743 eofe 07H eofe 0745 eioo OH6 07H 0748 OH9 0750 075, 0752 el02 el05 eiob eioa eiod eiof e 112 0753 el 13 60 0754 el H 0755 eih a6 d6 fo 12 ac 9d 03 20 82 e2 bl c2 20 91 e2 c6 d6 ee 9d 03 58 lp2 ldk kyndk beq lp3 ldy keyidk jsr pagst2 lda lkeypntl,y jsr pagres dec kyndk inc keyidk cli rts addrh zeiger auf ak.t. zeichen im video-ram mehrfach benutzte editorvariable 6845 vdc: daten-reg. zeichenzähler für pgm tastenbefehl tastatur-puffer in ac, pufferinhalt verschieben indek programmierbare befehle segment funktionstasten setzen addrl akt. pgm tastenpuffer segment zurücksetzen zeichenzähler für pgm tastenbefahl indek programmierbare befehle ===> tastatur-puffer in ac, pufferinhalt verschieben <=== 0756 0757 0758 0759 0760 076, e I 14 e 114 e I 14 eilt ell9 e llc ac ab 03 a2 00 bd ac 03 9d ab 03 lp3 lpl 0762 ellf eb 0763 el20 e' dl 0764 el22 do f5 0765 0766 0 76 7 0768 el24 el26 el27 el28 c6 dl 98 58 60 0769 el29 0770 el29 0771 el29 ===> input <=== 0772 el29 loop4 loop3 0773 07H 0775 0 7 76 0777 0 7 78 0779 0780 078, 0782 0783 0 78, 0785 0786 078 7 0 788 0789 el29 el2c el2e el30 el33 el36 el38 el3a el3c el3d el3f e 142 eih e 148 elh ehe ehe 20 99 e2 ao oa a5 d4 Be 00 db Bd 01 db a5 d I 05 d6 fo fa 78 a9 20 Be 00 db Bd 01 db 20 fe eo c9 Od do dd 85 do 20 H e5 ldy keyd ldk 1$00 lda keyd+i,k sta keyd,k ink CPK ndk bne lpl dec ndk tya cli rts jsr prt ldy I$Oa lda config sty vdc+adreg sta vdc+dareg loop3a lda ndk ora kyndk beq loop3a sei lda 1$20 sty vdc+adreg sta vdc+dareg jsr lp2 cmp l$0d bne loop' sta crsw jsr fndend tastaturpuffer 110 bytesl tastaturpuffer +I {10 bytes} tastaturpuffer 110 bytesl anzahl bytes im tastaturpuffet anzahl bytes im tastaturpuffer zeichen aus ac auf bildschirm cursor type I char. vor blinken 6845 vdc: adress-reg. 6845 vdc: daten-reg. anzahl bytes im tastaturpuffer Zeichenzähler für pgm tastenbefehl 6845 vdc: adress-reg. 6845 vdc: daten-reg. zeichen aus tastenpuffer in ac input flag 'er' bei bs-eingabe cursor an zeilenende lese, k}

610/710 os-editor! hard+soft ass/reass..... seite 0017 zeile adr. obj.-code source-code 0790 0791 0792 0793 0794 0795 0796 0 79 7 079B 0799 OBOO OBO! OB02 OB03 OB04 OB05 OB06 OB07 OBOB el51 el54 e157 el59 e!5b e!5d e15f el61 e!63 el65 el67 el6a el6c el6e e170 e 172 eih e 176 el79 OB09 e I 79 Be 9B 03 20 36 e5 a9 oo B5 d2 a4 de a5 cf 30 13 c5 ca 90 Of a4 ce cd 9B 03 do 04 c4 d5 fo 02 bo II B5 ca B4 cb 4c Bb el lp70 lp75 lpbo stx lintmp jsr fistrt lda lt$00 sta qtsw ldy sclf lda lsxp bmi lpbo cmp tblx bcc lpbo ldy lstp cmp lintmp bne lp70 cpy indx beq lp75 bcs clp2 sta tblx sty pntr jmp lop5 puffer für bs-zeilen lt cursor auf zeilenanfang flag für anführungszeichen-modus linker rand bildschirm letzte position lzeilel cursor zeile OB!O el79 ===> char von bs holen (get o. inputl <=== OBI! OB12 OB13 OB14 OB15 OB16 OBI7 OB!B OB!9 OB20 OB21 OB22 OB23 OB24 el79 e 179 e 17a e!tb e 17c e 17d el7f eibi e!b3 e!b5 e!b 7 e!b9 e!bb e!bb 9B 48 Ba 4B a5 do fo ab 10 OB a9 00 B5 do a9 Od do 39 loop5 clp2 tya pha txa pha lda crsw beq loop3 bpl lop5 lda lt$00 sta crsw lda l$0d bne clp7 0825 el8b ===> char von bs holen (getl <=== OB26 e!bb OB27 OB2B OB29 OB30 0831 OB32 OB33 0834 OB35 OB36 OB37 OB38 OB39 0840 OB41 OB42 0843 e!bb el8e e 191 e193 el95 el97 el99 el9b el9d el9f e Ia I e!a3 ela5 e Ia 7 elaa elac elaf 20 cd eo 20 42 e2 B5 db 29 3f 06 db 24 db 10 02 09 BO 90 04 a6 d2 do 04 70 02 09 40 20 cd el a4 ca cc 9B 03 90 Oa 08H elbl ' cb OBH e!b3 c4 d5 OB46 elb5 90 04 OB47 elb7 66 do lop5 lop54 lop52 lop53 jsr stupt jsr get Ich sta adata and l$3f asl adata bit adata bpl lop54 ora 1$80 bcc lop52 ldx qtsw bne lop53 bvs lop53 ora lt$40 jsr qtswc ldy tblx cpy lintmp bcc clpoo ldy pntr cpy indx bcc clpoo ror crsw screen edit Startposition puffer für bs-zeilen lt position letztes zeichen in zeile cursor zeile cursor spalte char von bs holen lgetl flag er bei bs-eingabe char von bs holen (get} flag er bei bs-eingabe bs-zeiger auf cursor-zeile zeichen von cursorpos. in ac akt. ausgabezeichen akt. ausgabezeichen akt. ausgabezeichen flag für anführungszeichen-modus quote-mode-flag invertieren cursor zeile puffer für bs-zeilen # cursor spalte position letztes zeichen in zeile flag er bei bs-eingabe

610/710 os-editor! hard+soft ass/reass... seite 0018 zeile adr. obj.-code source-code 0848 elb9 30 03 0849 elbb 20 74 e5 0850 elbe c9 de 0851 e!co do 02 0852 e!c2 a9 ff 0853 elc4 85 db 0854 elc6 68 0855 0856 0857 0858 0859 e lc7 elc8 elc9 elca elcc aa 68 ab a5 db 60 0860 e!cd 0861 e!cd clpoo clp! clp7 bmi clp! jsr nxtchr cmp l$de bne clp 7 lda l$ff sta adata pla tax pla tay lda ada ta rts 0862 e!cd ===> quote-mode-flag invertieren <=== 0863 e!cd 0864 e!cd c9 22 qtswc cmp 1$22 0865 elcf do Oe bne qtswl 0866 e!d! a5 d3 lda insrt 086 7 e!d3 do 06 bne qtswi 0868 e!d5 a5 d2 lda qtsw 0869 eld7 49 01 eor 1$0 I 0870 e!d9 85 d2 sta qtsw 0871 e!db 0872 e!db 0813 e!db ===> in ac <=== 0814 0875 0876 0877 0878 0879 0880 e!db eldb e!dd e!de elde elde elde a9 22 60 0881 0882 0883 0884 0885 0886 0887 0888 0889 elde elel ele3 ele5 ele7 ele9 eleb elee elfo 2c 97 03 10 02 09 80 a6 d3 fo 02 c6 d3 2c 9a 03 10 09 48 nxt3 nvs nvsa 0890 elf! 20 e4 e5 0891 elf4 a2 oo 0892 0893 0894 0895 0896 0897 0898 0899 0900 0901 090Z 0903 0904 0905 elf6 elf8 elf9 elfc elfe e200 e203 e206 e206 e206 ez06 e206 e208 e20b 86 d3 68 20 lc e2 co H do 03 20 8d e4 20 2e e6 a5 db nvs 1 nvs2 loop2 qtswi lda 1$22 qtswl rts ===> zeichen auf bs ausgeben <=== bit rvs bpl nvs ora 1$80 ldx insrt beq nvsa dec insrt bit insflg bpl nvs I pha jsr insert ldx 1$00 stx insrt pla jsr dspp cpy 1$45 bne nvs2 jsr bell jsr movchr ===> ende Zeichenausgabe <=== 8d 99 03 20 da eo lda adata sta 1stehr jsr movcur cursor I pos. rechts akt. ausgabezeichen akt. ausgabezeichen insert flag in ac flag für anführungszeichen-modus flag für anführungszeichen-modus revers flag insert flag insert flag auto insert flag zeichen einfügen 1$941 insert flag char in ac an cursorposition glocke anschlagen 1$07 oder $871 test zeilenende, zeile einfügen akt. ausgabezeichen letztes gedrucktes zeichen cursor-pos. in reg. 14/15 vdc 6851

610/710 os-editorl hard+soft ass/reass..... seite 0019 zeile adr. obj.-code source-code 0906 e20e 0907 e20f 0908 e210 0909 e212 0910 e214 0911 e216 0912 0913 0914 e217 e218 e219 0915 e21a 0916 e21a 68 ab a5 d3 fo 02 H 68 aa 68 60 d2 lop2 pla tay lda insrt beq lopz lsr qtsw pla tax pla rts 0917 e21a ===> space an Cursorposition <=== 0918 e21a 0919 e21a a9 20 doblnk lda #$20 0920 e21c 0921 e21c 0922 e21c ===> char in ac an cursorposition <=== 0923 e21c 0924 e21c a4 cb dspp ldy pntr 0925 e21e 20 7d e2 jsr pagset 0926 e221 91 cb sta (pntl,y 0927 e223 20 91 e2 0928 e226 60 0929 e227 0930 e227 jsr pagres rts 0931 e227 ===> bs-zeile löschen <=== 0932 e227 0933 e227 a4 de clrln ldy sclf 0934 e229 20 05 es jsr clrbit 0935 e22c 0936 e22d 0937 e22e 0938 e230 0939 e231 88 0940 0941 0942 0943 0944 0945 0946 0947 e232 e233 e235 e238 e23a e23c e23d e23f Ba 48 as cb 48 0948 e240 aa 0949 e24 I 60 0950 e242 0951 e242 cb 84 cb 20 Ia ez c4 df do f6 68 85 cb 68 clrprt txa pha lda pntr pha dey clrio iny sty pntr jsr doblnk cpy scrt bne clrio pla sta pntr pla tax rts 0952 e242 ===> zeichen von cursorpos. in ac <=== insert flag flag für anführungszeichen-modus cursor spalte segment 15 setzen addrl zeiger auf akt. zeichen im video-ram segment zurücksetzen linker rand bildschirm akt. zeile als l.doppelzeile eintragen cursor spalte cursor spalte space an cursorposition rechter rand bildschirm cursor spalte 0953 e242 0954 e242 a4 cb getlch ldy pntr cursor spalte 0955 ezh 0956 e2h 0957 e2h ===> zeichen von zeile in ac, spalte=yr <=== 0958 e2h 0959 e244 20 7d e2 0960 e247 bl cb getych jsr pagset lda lpntl,y segment 15 setzen addrl zeiger auf akt. zeichen im video-ram

610/710 os-editor1 hard+soft ass/reass.... seite 0020 zeile adr. obj.-code source-code 0961 e2h 0962 e24c 0963 e24d 0964 0965 0966 e24d e24d e24d 0967 e24d 0968 e2h 0969 e251 0970 0971 20 91 e2 60 jsr pagres rts ===> umsch. text l$0e) - graphik l$8el <=== ao 10 bo 02 ctext ldy lt$10 bcs crtset e251 e251 ===> textmodus setzen <=== 0972 e251 0973 e251 ao oo 0974 e253 0975 e253 txcrt ldy lt$00 0976 e253 ===> crt-umschaltung, yr = text/grafik <=== 0977 e253 0978 e253 0979 e255 0980 e258 0981 e25a 0982 e25c 0983 e25f 0984 e260 0985 e260 84 cc ad 06 de 29 ef 05 cc 8d 06 de 60 crtset sty grmode lda tri 1 creg and tt$ef ora grmode sta tri1 creg rts 0986 e260 ===> crt-controller programmieren <=== 098 7 e260 0988 e260 0989 e262 0990 e265 0991 e267 0992 e269 0993 e26b 0994 e26d 0995 e26f 0996 e212 0991 e275 0998 e278 0999 e219 1000 e27a 1001 e21c 1002 e27d 1003 e21d ao 11 2c 02 df 30 06 ao 23 70 02 ao 35 a2 11 b9 6f ec Be 00 db Bd 01 d8 88 ca 10 f3 60 crtint ldy 1$11 bit tri2+pc bmi crt10 ldy 1$23 bvs crt10 ldy 1$35 crt10 ldx tt$11 crt20 lda atext,y stx vdc+adreg sta vdc dareg dey dex bpl crt20 rts 1004 e27d ===> segment 15 setzen <=== 1005 e27d 1006 e27d 48 1001 e27e a9 3f 1008 e280 do 04 1009 e282 1010 e282 pagset pha lda ll$3f bne pagsub 1011 e282 ===> segmentfunktionstastensetzen <=== 1012 e282 1013 e282 1014 e283 1015 e286 1016 e286 48 pagst2 pha ad 82 03 lda keyseg 1017 e286 ===> segment I# in acl setzen <=== 1018 e286 segment zurücksetzen crt-umschaltung, yr text/grafik flag für grafik/text-modus 6525 triport 1: control reg. flag für grafikltext-modus 6525 triport 1: control reg. 6525 triport 2: port reg. c codetab. 1 für bs-crt 6845 6845 vdc: adress-reg. 6845 vdc: daten-reg. segment II in acl setzen ram-segment II für funktionstasten

610/710 os-editorl hard+soft ass/reass... seite 0021 zeile adr. obj.-code source-code 1019 e286 48 pagsub pha 1020 e287 a5 01 lda i6509 6509 indirection register 1021 e289 03 Bd ao sta pagsav zeitweise ram page 1022 e2bc 68 pla 1023 e2bd 85 01 sta i6509 6509 indirection register 1024 e28f 68 pla 1025 e290 60 rts 1026 e291 1027 e291 1028 e291 segment zurücksetzen <=== ===> 1029 e291 1030 e291 48 pagres pha 1031 e292 ad ao 03 lda pagsav zeitweise ram page 1032 e295 85 01 sta i6509 6509 indirection register 1033 e297 68 pla 1034 e29b 60 rts 1035 e299 1036 e299 1037 e299 ===> zeichen aus ac auf bildschirm <=== 1038 e299 1039 e299 48 prt pha 1040 e29a c9 ff cmp l$ff 1041 e29c do 02 bne prt 10 1042 e29e a9 de lda l$de 1043 e2a0 85 db prtio sta adata akt. ausgabezeichen loh e2a2 Ba txa 1045 e2a3 48 pha 1046 e2a4 98 tya loh e2a5 48 pha 1048 e2a6 a9 00 lda 1$00 104 9 e2a8 85 do sta crsw flag er bei bs-eingabe 1050 e2aa a4 cb ldy pntr cursor spalte 1051 e2ac a5 db lda adata akt. ausgabezeichen 1052 e2ae 29 7f and l$1f 1053 e2b0 c9 20 cmp 1$20 1054 e2b2 90 lb bcc ntcn Steuerzeichenbehandlung 1055 e2b4 ae 99 03 ldx Istehr letztes gedrucktes zeichen 1056 e2b7 eo lb cpx l$1b 1057 e2b9 do 06 bne njtio 1058 e2bb 20 55 e6 jsr sequen aufruf user esc-funktionen lind.-vektorl 1059 e2be 4c 03 e3 jmp getaut ende Zeichenausgabe 1060 e2c1 1061 e2c1 1062 e2cl 29 3f njtio and #$3f 1063 e2c3 24 db njt20 bit adata akt. ausgabezeichen 1064 e2c5 10 02 bpl njt30 1065 e2c7 09 40 ora 1$40 1066 e2c9 20 Cd e I njt30 jsr qtswc quote-mode-flag""" invertieren 106 7 e2cc 4c de el jmp nxt3 zeichen auf bs ausgeben 1068 e2cf 1069 e2cf 1070 e2cf ===> Steuerzeichenbehandlung <=== 1071 ezcf 1072 e2cf c9 Od ntcn cmp #$0d 1073 e2d1 fo 29 beq ntcn20 ctr-adr. auf stapel, zeichenausg. loh e2d3 c9 cmp #$14 1075 e2d5 fo 25 beq ntcn20 ctr-adr. auf stapel, zeichenausg. "

610/710 os-editorf hard+soft asslreass... seite 0022 zeile adr. obj.-code source-code 1076 e2d7 1077 e2d9 1078 e2db 1079 e2dd 1080 e2df 1081 e2ef 1082 e2e3 1083 e2e5 1084 e2e8 1085 e2ea 1086 e2ec 1087 e2ee 1088 e2f0 1089 e2f2 1090 e2f4 1091 e2f6 1092 e2f8 1093 e2fa 1094 e2fc 1095 e2fc c9 lb do II 24 db 30 Od a5 d2 05 d3 fo I 1 20 a2 e3 85 db fo 10 c9 03 fo Oe a4 d3 do 04 a4 d2 fo 04 09 80 do c1 cmp 1$fb bne ntcn1 bit adata bmi ntcnl lda qtsw ora insrt beq ntcn20 jsr toqm sta adata beq ntcn20 ntcn1 cmp 1$03 beq ntcn20 ldy insrt bne ntcnio ldy qtsw beq ntcn20 ntcn 10 ora 1$80 bne njt20 akt. ausgabezeichen flag für anführungszeichen-modus insert flag ctr-adr. auf stapel, zeichenausg. 'inst- quote- rvs -mode aus akt. ausgabezeichen ctr-adr. auf stapel, zeichenausg. ctr-adr. auf stapel, zeichenausg. insert flag flag für anführungszeichen-modus ctr-adr. auf stapel, zeichenausg. 1096 e2fc ===> ctr-adr. auf stapel, zeichenausg. <=== 1097 e2fc 1098 e2fc a5 db ntcn20 lda adata akt. ausgabezeichen Oa asl a aa tax 20 06 e3 jsr ctdsp 4c 06 e2 getaut jmp loop2 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 "10 "" "12 "13 "" "15 "16 "17 "18 "19 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 e2fe e2ff e300 e303 e306 e306 e306 e306 e306 e309 e30a e30d e30e e310 e3 II e311 e3 II e3 14 e314 e314 e3 14 e3 14 e316 e319 e31c e31e e31f e321 e322 e323 e323 e323 ===> ctr-adr. auf stapel, ac =ausgabez. <=== bd e5 eb u bd e4 eb u a5 db 60 6c 22 03 1131 e323 1132 e323 a6 dc 1133 e325 e4 ca ctdsp lda ctable+l,x pha lda ctable,x pha lda ada ta rts cuser jmp lctlvecl ===> cursor unten I$ II I - oben I $91 I < bo Od cdnup 20 7a e3 20 f5 e4 cdnio bo 03 38 66 Cf 18 cdrts 60 bcs cup jsr nxln jsr getbit bcs cdrts sec ror lsxp clc rts ===> cursor nach oben <=== cup ldx sctop cpx tblx ctr-adr. auf stapel, ac =ausgabez. ende Zeichenausgabe adress-tab. der control-routinen adress-tab. der control-routinen akt. ausgabezeichen addrl unbenuzte 'ctrl tasten-vector cursor nach oben test bs-ende, cursor nächste zeile test auf doppelzeile lakt. zeilel letzte position lzeilel oberste zeile bildschirm (0-251 cursor zeile

610/710 os-editor1 hard+soft ass/reass.... seite 0023 zeile adr. obj.-code source-code 1134 e327 bo Of bcs critgo 113S e329 20 19 e3 cup10 jsr cdn10 1136 e32c c6 ca dec tblx cursor zeile 1137 e32e 4c Cd eo jmp stupt bs-zeiger auf cursor-zeile 1138 e331 1139 e331 1140 e331 ===> cursor rechts l$1d} - links l$9d} <=== 1H1 e331 11H e331 bo 06 crtlf bcs cleft cursor nach links 1H3 e333 20 H es jsr nxtchr cursor 1 pos. rechts 11H e336 bo e1 bcs cdn10 11H e338 60 critgo rts 11H e339 11H e339 1148 e339 ===> cursor nach links <=== 1H9 e339 11SO e339 20 87 es cleft jsr bakchr cursor 1 position nach links 11S1 e33c bo fa bcs critgo 11S2 e33e do e1 bne cdrts 11S3 eho e6 ca inc tblx cursor zeile 11S4 e342 do es bne cup10 1155 e3h 11S6 e3h 11S7 e3h ===> revers on 1$12} - off 1$92} <=== 11S8 e3h 11S9 e3h u 80 rvsf eor #$80 1160 e346 8d 97 03 sta rvs revers flag 1161 eh9 60 rts 1162 e34a 1163 e3h 1164 e3h ===> cursor home 1$13} - bs clear 1$93} <=== 116S e3h 1166 e3h 90 03 homclr bcc homes cursor home 116 7 e34c 4C b3 eo jmp clsr bildschirm löschen 1168 e3h 1169 e34f 1170 e3h ===> cursor home <=== 11 71 e3h 1172 e3h cd 99 03 homes cmp 1stehr letztes gedrucktes zeichen 1173 e3s2 do 03 bne hm110 11H e354 20 c7 e9 jsr sreset bs-fenster auf volle grösse lhome-home} 111S e357 4c c1 eo hm110 jmp nxtd home-position setzen 1176 e35a 1177 e35a 1178 e35a ===> tab 1$09} - setzen/löschen 1$89} <=== 1119 e35a 1180 e35a a4 cb tabit ldy pntr cursor spalte 1181 e35c bo 12 bcs tabtog tabulator setzen/löschen 1182 e35e 1183 e35e 1184 e35e ===> tabulator löschen <=== 1185 e35e 1186 e35e c4 df tab I cpy scrt rechter rand bildschirm 118 7 e360 90 OS bcc tab2 1188 e362 a5 df lda scrt rechter rand bildschirm 1189 e364 85 cb sta pntr cursor spalte 1190 e366 60 rts

610/710 os-editor! hard+soft ass/reass..... seite 0024 zeile adr. obj.-code source-code 1191 e367 1192 e361 1193 e367 1194 e368 1!95 e36b 1196 e36d 1197 e36f 1198 eho 1199 eho c8 20 5a e9 fo f! 84 cb 60 tab2 iny jsr gettab beq tab! sty pntr rts 1200 e370 ===> tabulator setzen/löschen <=== 1201 e310 1202 e370 1203 e313 1204 eh6 1205 eh9 1206 eha 1201 e31a 20 5a e9 4d 9c 03 9d a I 03 60 tabtog jsr gettab eor bitmsk sta tab,x rts tabulator holen tabulator löschen cursor spalte 1208 e31a ===> test bs-ende, cursor nächste zeile <=== 1209 eha 1210 e31a 1211 ehe 1212 ehe 1213 e380 1214 e383 1215 e385 1216 e387 1211 e389 1218 e38b 1219 e38e 1220 e38f 1221 e391 1222 e394 1223 e394 a6 ca e4 dd 90 Of 2C 9b 03 10 06 a5 dc 85 ca bo 06 20 f6 e3 18 e6 ca 4c cd eo nxln ldx tblx cpx scbot bcc nxln! bit scrdis bpl doscrl lda sctop sta tblx bcs nowhop doscrl jsr scrup clc nxln! inc tblx nowhop jmp stupt 1224 e394 ===> carr~age return ($0d oder $8dl <=== 1225 e394 1226 e394 1221 e391 1228 e398 20 H e5 e8 20 05 e5 1229 e39b a4 de 1230 e39d 84 cb 1231 e39f 20 Ta e3 1232 e3a2 1233 e3a2 nxt! jsr fndend inx jsr clrbit ldy sclf sty pntr jsr nxln 1234 e3a2 ===> 'inst- quote- rvs -mode aus <=== 1235 e3a2 1236 e3a2 1231 e3a4 1238 e3a6 1239 e3a9 1240 e3ab 124 I e3ae 1242 e3b0 1243 e3b3 60 1244 e3b4 1245 e3b4 a9 00 85 d3 8d 91 03 85 d2 cd 9f 03 do 03 Bd 18 da toqm lda 1$00 sta insrt sta rvs sta qtsw cmp bellmd bne toqmx sta sid+volume toqmx rts 1246 e3b4 ===> zeilen verschieben <=== tabulator holen bit mask/funkt.tasten temporär tabstop flags (max.!obyt/80bitl cursor zeile unterste zeile bildschirm (0-251 scroll disable flag oberste zeile bildschirm (0-251 cursor zeile nach oben scrollen cursor zeile bs-zeiger auf cursor-zeile cursor an zeilenende lese, kl akt. zeile als!.doppelzeile eintragen linker rand bildschirm cursor spalte test bs-ende, cursor nächste zeile insert flag revers flag flag für anführungszeichen-modus flag für glocke am zeilenende lautstärke I schalter tief-, band-, hochpass

610/710 os-editorl hard+soft ass/reass..... seite 0025 zeile adr. obj.-code source-code 1247 1248 1249 1250 1251 1252 1253 1254 e3b4 e3b4 e3b7 e3b9 e3bc e3be e3cl e3c3 1255 e3c5 1256 e3c7 1257 e3c8 1258 e3ca 1259 e3cd 1260 e3cd bd b2 eb 85 c4 bd cb eb movlin lda ldtb2,x sta sedsal lda ldtb I, X 85 c5 sta sedsal+l 20 7d e2 jsr pagset bl c4 movlio lda (sedsal),y 91 c8 sta (pntj,y c4 df c8 90 f7 4c 91 e2 cpy scrt iny bcc movlio jmp pagres 1261 e3cd ===> nach unten scrollen <=== 1262 e3cd 1263 e3cd a6 cf scrdwn ldx lsxp 1264 e3cf 30 06 bmi scd30 1265 e3dl e4 ca 1266 e3d3 90 02 1267 e3d5 1268 e3d7 1269 e3d9 1270 e3dc 1271 e3de 12 72 e3e0 1273 e3e2 1214 e3e3 1275 e3e6 1276 e3e7 12 77 e3ea 1278 e3eb 12 79 e3ee 1280 e3f0 1281 e3f3 1282 e3f6 1283 e3f6 e6 cf a6 dd 20 cf eo a4 de e4 ca fo Oe Cl 20 f7 e4 e8 20 03 e5 Cl 20 b4 e3 bo e9 20 27 e2 4c 12 e5 scd30 scdio scd20 cpx tblx bcc scd30 inc lsxp ldx scbot jsr scrset ldy sclf cpx tblx beq scd20 dex jsr getbtl inx jsr putbtl dex jsr movlin bcs scdio jsr clrln jmp setbi t 1284 e3f6 ===> nach oben scrollen <=== 1285 e3f6 1286 e3f6 a6 dc scrup ldx sctop 128 7 1288 1289 1290 129 I 1292 1293 1294 e3f8 e3f9 e3fc e3fe e400 e402 e404 e405 e8 20 f7 e4 90 Oa e4 dd 90 f6 a6 dc e8 20 05 e5 scruoo inx jsr getbtl bcc scrul5 cpx scbot bcc scruoo ldx sctop inx jsr clrbi t 1295 1296 129 7 IZ98 1299 1300 130 I 1302 e408 e40a e40c e40e e410 e4!2 e4 14 e416 c6 ca 24 Cf 30 02 C6 Cf a6 dc e4 da bo 02 c6 da scrul5 dec tblx bit lsxp bmi scru20 dec lsxp scru20 ldx sctop cpx sedt2 bcs scru30 dec sedt2 tab. anfangs-addrl bs-zeilen addrl scroll-zeiger start tab. anfangs-addrh der bs-zeilen addrh scroll-zeiger start segment 15 setzen addrl scroll-zeiger start addrl zeiger auf akt. zeichen im video-ram rechter rand bildschirm segment zurücksetzen letzte position (Zeile) cursor zeile letzte position (zeile) unterste zeile bildschirm (0-25) bs-zeiger setzen,zeilenoffset=xr linker rand bildschirm cursor zeile test auf doppelzeile (xr zeilen verschieben bs-zeile löschen zeile) oberste zeile bildschirm (0-25) test auf doppelzeile (xr = zeilej unterste zeile bildschirm (0-25) oberste zeile bildschirm (0-25) akt. zeile als l.doppelzeile eintragen cursor zeile letzte position (zeilej letzte position (Zeile) oberste zeile bildschirm (0-25) mehrfach benutzte editorvariable mehrfach benutzte editorvariable

610/710 os-editorl hard+soft ass/reass.... seite 0026 zeile adr. obj.-code source-code 1303 e418 20 2d e4 1304 e41b a6 dc 1305 e41d 20 f7 e4 1306 e420 OB 1307 e421 20 05 e5 1308 e424 28 1309 e425 90 05 1310 e427 2c 9e 03 1311 e42a 30 dc 1312 e42c 60 1313 e42d 1314 e42d 1315 e42d 1316 e430 1317 e432 1318 e434 20 cf eo a4 de e4 dd bo Oe 1319 e436 eb 1320 e437 20 f7 e4 1321 e4ja ca 1322 e43b 20 03 e5 scru30 jsr scrio ldx sctop jsr getbtl php jsr clrbit plp bcc scruio bit logscr bmi scru15 scruio rts scrio jsr scrset ldy sclf cpx scbot bcs scr40 inx jsr getbtl dex jsr putbtl inx jsr movlin bcs scrio jsr clrln ldx l$ff ldy Sfe jsr getlin and,$20 bne scr80 1323 1324 1325 1326 1327 1328 1329 1330 1331 e4je e4jf eh2 eh4 e447 eh9 ehb ehe e450 eb 20 b4 e3 bo e9 20 27 e2 a2 ff ao fe 20 80 e4 29 20 do Od scr40 I 332 e452 1333 e452 1334 e452 ===> langsam scrollen <=== 1335 e452 1336 e452 ea scr60 nop 133 7 e453 ea nop 1338 e454 ca dex 1339 e455 do fb bne scr60 1340 e457 88 dey 1341 e458 do f8 bne scr60 1342 e45a 84 dl scr70 sty ndx 1343 e45c 4c f7 e8 scr75 jmp keyxt2 1344 e45f 1345 e45f scrbo 1346 134 7 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 e45f e461 e463 e466 e468 e46a e46d e46f eh I e473 e475 e478 e4 7a ehe a2 f7 ao ff 20 80 e4 29 10 do f2 20 80 e4 29 10 fo f9 ao oo a2 oo zo 80 e4 29 3f 49 3f fo f3 scr90 scr95 ldx sh ldy l$ff jsr getlin and 1$10 bne scr75 jsr getlin and #$10 beq scr90 ldy soo ldx 1$00 jsr getlin and l$3f eor #$3f beq scr95 oberste zeile bildschirm (0-251 test auf doppelzeile (xr = zeilel akt. zeile als l.doppelzeile eintragen logical/physical scroll flag bs-zeiger setzen,zeilenoffset=xr linker rand bildschirm unterste zeile bildschirm (0-251 test auf doppelzeile (xr zeilen verschieben bs-zeile löschen zeilel triport 2 setzen, tastenabfrage langsam scrollen langsam scrollen anzahl bytes im tastaturpuffer triport 2 setzen, tastenabfrage triport 2 setzen. tastenabfrage triport 2 setzen, tastenabfrage

610/710 os-editor1 hard+soft ass/reass...... seite 0027 zeile adr. obj.-code source-code 1360 e4 7e do da bne scr70 1361 e480 1362 e480 1363 e480 ===> triport 2 setzen, tastenabfrage <=== 1364 e480 1365 e480 OB getlin php 1366 e481 1B sei 1367 e482 Be 00 df stx tri2+pa 6525 triport 2: port reg. a 136B e485 Be 01 df sty tri2+pb 6525 triport 2: port reg. b 1369 e48b 20 1e e9 jsr getkey tastaturabfrage Über triport 2 1310 e48b 2B plp 1371 e48c 60 rts 1372 e48d 1373 e48d.end 1374 e48d.lib editor2

610/710 os-editor2 hard soft ass/reass.... seite 0028 zeile adr. obj.-code source-code 1376 eud 1377 e4bd ===> glocke anschlagen ($07 oder $871 <=== 1378 eud 1379 e4bd ad 9f 03 bell 1380 e490 do 27 1381 e492 a9 Of 1382 e494 Bd 18 da 1383 e497 ao 00 1384 e499 Be 05 da 1385 e49c a9 Oa 1386 e49e Bd 06 da 13B7 1388 e4al e4a3 a9 30 Bd 01 da lda bellmd bne bellgo lda #$0f sta sid volume ldy #$00 sty sid oscl atkdcy oszi lda #$0a sta sid oscl susrel oszi lda #$30 sta sid oscl freqhi flag für glocke am zeilenende Lautstärke I schalter tief-, band-, hochpass ' 65BI sid: attack/decay-time 65BI sid: sustain/release time 65BI sid: addrh frequenz oszi 13B9 1390 e4a6 ehb a9 60 Bd Of da lda #$60 sta sid osc3 freqhi 3 65BI sid: addrh frequenz oszi 139' 1392 1393 e4ab ehd e4b0 a2 15 Be 04 da ea ldx #$15 stx sid oscl oscctl bellio nop 65B1 sid: steuerreg. oszi 1 1394 e4bl ea nop 1395 e4b2 cb iny 1396 e4b3 do fb bne bellio 1397 e4b5 ca dex 139B e4b6 Be 04 da stx sid oscl oscctl 65BI sid: steuerreg. oszi 1 1399 e4b9 60 bellgo rts 14 00 e4ba 1401 e4ba 1402 e4ba ===> löscht letzte eingegebene zahl "ce <=== 1403 e4ba 1404 1405 1406 140 7 140B 1409 1410 '" 1 1412 1413 1414 1415 1416 14 17 1418 1419 1420 142' 1422 1423 1424 1425 e4ba e4bc e4bd e4bf e4c0 e4c3 e4c5 e4c7 e4c9 e4cb e4cc e4cf e4dl e4d3 e4d5 e4d7 e4db e4db e4dd e4df e4el e4e3 a5 cb 4B a4 cb BB 20 H e2 c9 2b fo 04 c9 2d do OB BB 20 H e2 c9 05 do Ia c9 05 do 04 BB 20 H e2 c9 2e 90 Oe c9 2f fo Oa c9 Ja 1426 e4e5 bo 06 1427 e4e7 20 bo e5 142B e4ea 4c bd e4 ce ceto cetl cet2 cet3 lda pntr pha ldy pntr dey jsr getych cmp #$2b beq cetl cmp #$2d bne cet2 dey jsr getych cmp #$05 bne cet4 cmp #$05 bne cet3 dey jsr getych cmp #$2e bcc cet4 cmp #$2f beq cet' cmp #$3a bcs cet4 jsr deleet jmp ceto cursor spalte cursor spalte zeichen von zeile in ac, spalte=yr zeichen von zeile in ac, spalte=yr zeichen von zeile in ac, spalte=yr zeichen löschen ($141

610/710 os-editor2 hard+soft ass/reass..... seite 0029 zeile adr. obj.-code source-code 1429 e4ed 1430 e4ed 1431 e4ed 68 1432 e4ee es cb 1433 e4f0 do c7 1434 e4f2 4c bo es 1435 eh5 1436 ehs cet4 pla cmp pntr bne bellgo jmp deleet cursor spalte 1437 e4fs ===> test auf doppelzeile lakt. zeilel <=== 1438 ehs 1439 e4fs a6 ca getbit ldx tblx IHO eh7 1441 eh7 1442 e4f7 ===> test auf doppelzeile lxr 1443 eh7 1444 eh7 20 le es getbtl jsr bitpos 144S eha 3S e2 1446 ehe c9 01 1447 e4fe 4c Oe es 1448 eso1 1449 esoi and bitabl,x cmp 1$01 jmp bitout zeichen löschen 1$141 cursor zeile zeile} <=== 14SO esoi ===> akt. zeile als doppelzeile eintragen <=== 14S1 esoi 14S2 e501 a6 ca 14S3 es03 bo Od 1454 es OS 145S e505 1456 e50s 14S7 e505 1458 es OS 14S9 e508 Uff 1460 esoa 3S e2 1461 esoc 9S e2 1462 esoe ae 9c 03 1463 esii 60 1464 e512 IUS e512 1466 es12 2c 9b 03 146 7 es1s 70 eo 1468 es17 20 le es 1469 1410 1411 1412 1413 1474 IHS 1416 1417 1418 1419 lud 1481 1482 1483 es1a es1c esie es1e es1e es1e esie es21 es22 es24 es2s &528 es29 es2c es2d putbit ldx tblx putbtl bcs setbit flag für doppelzeile holen, zeiger für bit-tab. setzen tabelle basic-doppelzeilen 14 bytel cursor zeile ===> akt. zeile als 1.doppelzeile eintragen <=== 20 le es clrbit jsr bitpos IS e2 do ee eor l$ff and bitabl,x bitsav sta bitabl,x bitout ldx bitmsk rts setbit bit scrdis bvs getbtl jsr bitpos ora bi tabl, x bne bitsav flag für doppelzeile holen, zeiger für bit-tab. setzen taballe basic-doppelzeilen 14 bytel taballe basic-doppelzeilen 14 bytel bit mask/funkt.tasten temporär scroll disable flag test auf doppelzeile lxr = zeilel flag für doppelzeile holen, zeiger für bit-tab. setzen tabelle basic-doppelzeilen 14 bytel ===> flag für doppelzeile holen, zeiger für bit-tab. setzen <=== Be 9c 03 Ba 29 07 aa bd 67 ec u ad 9c 03 4a 4a bitpos stx bitmsk txa and 1$07 tax lda keyend,x pha lda bitmsk lsr a lsr a bit mask/funkt.tasten temporär bit-tabelle für zeilen-link bit mask/funkt.tasten temporär

610/710 os-editor2 hard+soft ass/reass.... seite 0030 zeile adr. obj.-code source-code 1484 1485 1486 148 7 1488 1489 e52e e52f e530 e531 e532 e532 4a aa 68 60 lsr a tax pla rts 1490 e532 ===> cursor an zeilenanfang lese. j) <=== 149 I e532 1492 e532 1493 e534 1494 e536 1495 e536 a4 de 84 cb fndfst ldy sclf sty pntr 1496 e536 ===> cursor auf zeilenanfang <=== 1497 e536 1498 e536 20 f5 e4 1499 e539 90 06 1500 e53b c6 ca 1501 e53d 10 f7 1502 e53f e6 ca fistrt jsr getbit bcc fndo dec tblx bpl fistrt inc tblx 1503 e541 4c cd eo fndo jmp stupt 1504 e5h 1505 e5h 1506 1501 1508 1509 1510 15" 1512 1513 1514 1515 1516 1511 1518 1519 1520 152' 1522 1523 1524 1525 1526 1521 1528 1529 e5h e5h e5h e546 e548 e54a e54c e5h e551 e553 e556 e558 e55a e55c e55f e56 I e564 e566 e568 e56a e56c e56f e511 e573 1530 e574 1531 e574 ===> cursor an zeilenende lese, k) <=== a5 ca c5 dd bo 09 e6 ca 20 f5 e4 bo f3 c6 ca 20 cd eo a4 df 84 cb 10 05 20 81 e5 bo 10 20 42 e2 c9 20 do 09 c4 de do fo 20 f5 e4 bo eb 84 d5 60 fndend lda tblx cmp scbot bcs eloupp inc tblx jsr getbit bcs fndend dec tblx eloupp jsr stupt ldy scrt sty pntr bpl eloup2 eloupl jsr bakchr bcs endbye eloup2 jsr getlch cmp #$20 bne endbye cpy sclf bne eloupl jsr getbi t bcs eloupl endbye sty indx rts 1532 e574 ===> cursor I pos. rechts <=== I 533 e574 1534 1535 1536 1537 1536 1539 1540 e5h e575 e517 e579 e57b e57e e580 48 a4 cb c4 df 90 07 20 7a e3 a4 de 88 1541 e581 38 nxtchr pha ldy pntr cpy scrt bcc bumpnt jsr nxln ldy sclf dey sec linker rand bildschirm cursor spalte test auf doppelzeile lakt. zeilel cursor zeile cursor auf zeilenanfang cursor zeile bs-zeiger auf cursor-zeile cursor zeile unterste zeile bildschirm 10-251 cursor zeile test auf doppelzeile lakt. zeile) cursor an zeilenende lese, k) cursor zeile bs-zeiger auf cursor-zeile rechter rand bildschirm cursor spalte cursor I pasitian nach links zeichen von cursarpos. in ac linker rand bildschirm test auf dappelzeile lakt. zeilel pasitian letztes zeichen in zeile cursor spalte rechter rand bildschirm test bs-ende, cursor nächste zeile linker rand bildschirm

610/710 os-editor2 hard+soft ass/reass.... seite 0031 zeile adr. obj.-code source-code 1542 e582 1543 e583 15H e585 15U e5b6 1546 e587 1547 &58 7 1548 e587 1549 e581 1550 e587 1551 e589 1552 e58a 1553 e5bc 1554 e58e 1555 e590 1556 e592 1557 e594 1558 e596 1559 e598 1560 &599 156 I e59c 1562 e59d 1563 e59f 1564 e5a I 1565 e5a3 1566 e5a4 60 1567 e5a5 1568 e5a5 cb 84 cb 68 60 bumpnt iny sty pntr pla rts ===> cursor 1 position nach links <=== a4 cb 88 30 04 c4 de bo Of a4 dc c4 ca bo Oe c6 ca 48 20 cd eo 68 a4 df 84 cb c4 df 18 bakchr ldy pntr dey bmi bakotl cpy sclf bcs bakout bakotl ldy sctop cpy tblx bcs bakot2 dec tblx pha jsr stupt pla ldy scrt bakout sty pntr cpy scrt clc bakot2 rts cursor spalte cursor spalte linker rand bildschirm oberste zeile bildschirm 10-251 cursor zeile cursor zeile 1569 e5a5 ===> cursor-zeile und -spalte retten <=== 1510 e5a5 1571 e5a5 1572 e5a7 1573 e5a9 1574 e5ab 1575 e5ad 1576 e5ae 1577 e5ae a4 cb 84 d9 a6 ca 86 da 60 savpos ldy pntr sty sedt1 ldx tblx stx sedt2 rts bs-zeiger auf cursor-zeile rechter rand bildschirm cursor spalte rechter rand bildschirm 1578 e5ae ===> zeichenlöschen 1$141, einfügen 1$94} <=== 1579 e5ae 1580 e5ae bo 34 158 I e5b0 1582 e5b0 deiins bcs insert 1583 e5b0 ===> zeichen löschen 1$141 <=== 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 e5b0 e5b0 e5b3 e5b6 e5b8 e5ba e5bc e5be e5bf e5c2 e5c4 e5c 7 e5c9 e5cb e5cd e5cf 20 39 e3 20 a5 e5 bo Of c4 df 90 16 a6 ca e8 20 f7 e4 bo Oe 20 Ia e2 a5 d9 85 cb a5 da 85 ca 4c cd eo deleet jsr cleft jsr savpos bcs deiout deloop cpy scrt bcc delopl ldx tblx inx jsr getbt1 bcs delopl jsr doblnk delout lda sedt1 sta pntr lda sedt2 s ta tblx jmp stupt cursor spalte mehrfach benutzte editorvariable cursor zeile mehrfach benutzte editorvariable zeichen einfügen 1$941 cursor nach links cursor-zeile und -spalte retten rechter rand bildschirm cursor zeile test auf doppelzeile lxr zeilel space an Cursorposition mehrfach benutzte editorvariable cursor spalte mehrfach benutzte editorvariable cursor zeile bs-zeiger auf cursor-zeile

610/710 os-editor2 hard+soft ass/reass.... seite 0032 zeile adr. obj.-code source-code 1600 e5d2 1601 e5d2 1602 e5d2 20 H e5 delop 1 jsr nxtchr cursor I pos. rechts 1603 e5d5 20 42 e2 jsr getlch zeichen von cursorpos. in IC 1604 e5d8 20 87 e5 jsr bakchr cursor I posi tion nach links 1605 e5db 20 lc e2 jsr dspp char in ac an Cursorposition 1606 e5de 20 74 e5 jsr nxtchr cursor I pos. rechts 160 7 e5el 4C b8 e5 jmp deloop 1608 e5e4 1609 e5e4 1610 e5e4 ===> zeichen einfügen 1$94) <=== 1611 e5e4 1612 e5e4 20 a5 e5 insert jsr savpos cursor-zeile und -spalte retten 1613 e5e7 20 e5 jsr fndend cursor an zeilenende lese, I<) " 1614 e5ea e4 da cpx sedt2 mehrfach benutzte editorvariable 1615 e5ec do 02 bne insio 1616 e5ee c4 d9 cpy sedtl mehrfach benutzte editorvariable 1617 e5f0 90 21 insio bcc ins 50 1618 e5f2 20 2e e6 jsr movchr test zeilenende, zeile einfügen 1619 e5f5 bo 22 bcs insout 1620 e5f7 20 87 e5 ins30 jsr bakchr cursor 1 position nach links 1621 e5fa 20 42 e2 jsr getlch zeichen von cursorpos. in IC 1622 e5fd 20 H e5 jsr nxtchr cursor 1 pos. rechts 1623 e600 20 lc e2 jsr dspp char in ac an Cursorposition 1624 e603 20 87 e5 jsr bakchr cursor I position nach links 1625 e606 a6 ca ldx tblx cursor zeile 1626 e60b e4 da cpx sedt2 mehrfach benutzte editorvariable 1627 e60a do eb bne ins30 1628 e60c c4 d9 cpy sedt 1 mehrfach benutzte editorvariable 1629 e60e do e7 bne ins30 1630 e610 20 II e2 jsr doblnk space an cursorposition 1631 e613 e6 d3 ins 50 inc insrt insert flag 1632 e615 do 02 bne insout 1633 e617 c6 d3 dec insrt insert flag 1634 e619 4c c7 e5 insout jmp delout 1635 e61c 1636 e61c 1637 e61c ===> dload"*" er run er' 1$83) <=== 1638 e61c 1639 e61c 90 Of stprun bcc runrts 1640 e61e 78 sei 1641 e61f 12 09 ldx So9 1642 e621 86 dl stx ndx anzahl bytes im tastaturpuffer 160 e623 bd ab eb runlop lda runtb-1, x 1644 e626 9d aa 03 sta keyd-i,x tastaturpuffer -1 110 bytes) 1645 e629 ca dex 1646 e62a do f7 bne runlop 1647 e62c 58 cli 1648 e62d 60 runrts rts 1649 e62e 1650 e62e 165, e62e ===> tes t zeilenende, zeile einfügen <= = 1652 e62e 1653 e62e c4 df movchr cpy scrt rechter rand bildschirm 1654 e630 90 Ob bcc movc!o 1655 e632 a6 ca ldx tblx cursor zeile 1656 e634 e4 dd cpx scbot unterste zeile bildschirm 10-25) 1657 e636 90 05 bcc movcio

610/710 os-editor2 hard+soft ass/reass.... seite 0033 zeile adr. obj.-code source-code 1658 1659 1660 1661 1662 1663 16H 1665 1666 166 7 1668 e638 e63b e63d e640 e643 e6h e648 e64a ehd e64e e650 1669 e653 18 1670 e654 60 1671 e655 1672 e655 2c 9b 03 30 17 20 cd eo 20 74 e5 90 Of 20 f5 e4 bo 09 20 00 ed 38 70 04 20 cd e3 bit scrdis bmi movc30 movcio jsr stupt jsr nxtchr bcc movc30 jsr getbit bcs movc20 jsr bszeil sec bvs movc30 jsr scrdwn movc20 clc movc30 rts 1673 e655 6c 20 03 sequen jmp lescvecl 1674 e658 1675 e658 scroll disable flag bs-zeiger auf cursor-zeile cursor I pos. rechts test auf doppelzeile lakt. zeilel anzahl zeilen bs=l, dann pla, pla nach unten scrollen addrl user esc-tasten-vector 1676 e658 ===> zeile unter aktueller zeile einfügen lese, il <=== 1677 e658 16 78 16 79 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 e658 e65b e65e e65f e662 e663 e666 e667 e669 e66a e66c e66d 20 cd e3 20 c7 eo eb 20 f7 e4 OB 20 01 e5 28 bo 03 38 66 cf 60 iline jsr scrdwn jsr stuio inx jsr getbtl php jsr putbit plp bcs linrts sec ror lsxp linrts rts nach unten scrollen letzte position lzeilel 1690 e66d 1691 e66d ===> aktuellezeilelöschen lese, dl <=== 1692 e66d 1693 e66d 20 36 e5 dline jsr fistrt 1694 e670 a5 dc lda sctop 1695 e672 48 pha 1696 e673 a5 ca lda tblx 1697 e675 85 dc sta sctop 1698 e677 ad 9e 03 lda logscr 1699 e67a 48 pha 1100 e6 Tb a9 80 lda 11$80 1701 e67d 8d 9e 03 sta logscr 1102 e680 20 08 e4 jsr scru15 1703 e683 68 pla I 704 e684 8d 9e 03 sta logscr 1705 e68 7 a5 dc lda sctop I 706 e689 85 ca sta tblx 1707 e68b 68 pla 1708 e68c 85 dc sta sctop 1709 e68e 38 sec 1710 e68f 66 cf ror lsxp 1711 e691 4c c7 eo jmp stu10 1712 e694 test auf doppelzeile lxr = zeilel akt. zeile als doppelzeileeintragen cursor auf zeilenanfang oberste zeile bildschirm 10-251 cursor zeile oberste zeile bildschirm 10-251 logical/physical scroll flag logical/physical scroll flag logical/physical scroll flag oberste zeile bildschirm 10-251 cursor zeile oberste zeile bildschirm 10-251 letzte position lzeilel 1713 e694 1714 e694 ===> zeile von cursor bis ende löschen lese, ql <=== 1715 e694

610/710 os-editor2 hard+soft ass/reass.... seite 0034 zeile adr. obj.-code source-code 1716 e694 1717 e697 1718 e69a 1719 e69c 1720 e69f 1721 e6al 1722 e6a4 f 723 e6a6 1724 e6a9 1725 e6a9 20 a5 e5 20 2c e2 e6 ca 20 cd eo a4 de 20 f5 e4 bo fl 4c c7 e5 etoeol jsr savpos etol jsr clrprt inc tblx jsr stupt ldy sclf jsr getbit bcs etol etout jmp delout cursor-zeile und -spalte retten cursor zeile bs-zeiger auf cursor-zeile linker rand bildschirm test auf doppelzeile lakt. zeile) 1726 e6a9 ===> zeile von cursor bis anfang löschen lese, p) <=== 1727 e6a9 1728 e6a9 1729 e6ac 1730 e6af f 731 e6bl 20 a5 e5 20 Ia e2 c4 de do 05 1732 e6b3 20 f5 e4 1733 e6b6 90 ee 1734 e6b8 20 87 e5 1735 e6bb 90 ef 1736 e6bd 1737 e6bd etosol jsr savpos etstol jsr doblnk cpy sclf bne etsioo jsr getbi t bcc etout etsioo jsr bakchr bcc etstol 1738 e6bd ===> bildschirm aufwärts rollen lese, v) <=== 1739 e6bd 1740 e6bd 20 a5 e5 suup 174 f e6c0 Ba 1742 e6cl 48 1743 e6c2 20 f6 e3 17H e6c5 68 1745 e6c6 85 da 1746 e6c8 4c a6 e6 f 747 e6cb f 748 e6cb jsr savpos txa pha jsr scrup pla sta sedt2 jmp etout cursor-zeile und -spalte retten space an Cursorposition linker rand bildschirm test auf doppelzeile (akt. zeile) cursor 1 position nach links cursor-zeile und -spalte retten nach oben scrollen 1749 e6cb ===> bildschirm abwärts rollen lese, w) <=== 1750 e6cb 1751 e6cb 1752 e6ce 1753 e6dl 1754 e6d3 1755 e6d4 1756 e6d6 1757 e6d8 1758 e6da 1759 e6dd 1760 1761 1762 1763 e6e0 e6e3 e6e3 20 a5 e5 20 f5 e4 bo 03 38 66 cf a5 dc 85 ca 20 cd e3 20 05 e5 4c a6 e6 sddn sddn2 jsr savpos jsr getbit bcs sddn2 sec ror lsxp lda sctop sta tblx jsr scrdwn jsr clrbi t jmp etout e6e3 ===> bildschirm-scroll ein lese, l) <=== 1764 e6e3 1765 e6e3 18 1766 e6e4 24 1767 e6e5 1768 1769 1770 e6e5 1771 e6e5 38 1772 e6e6 a9 00 scrswo clc.byte $24 e6e5 e6e5 ===> bildschirm-scroll aus lese, ml <=== scrsw7 sec lda #$00 mehrfach benutzte editorvariable cursor-zeile und -spalte retten test auf doppelzeile (akt. zeile) letzte position (Zeile) oberste zeile bildschirm (0-25) cursor zeile nach unten scrollen akt. zeile als l.doppelzeile eintragen

610/710 os-editor2 hard+soft ass!reass...... seite 0035 zeile adr. obj. -code source-code I 773 e6eb 6a ror a I 774 e6e9 Bd 9b 03 sta scrdis scroll disable flag I 775 e6ec 60 rts I 776 e6ed I 777 e6ed 177B e6ed IB clc 1779 e6ee 90 01 bcc logsw 17BO e6f0 3B sec I 7B I e6fl a9 00 logsw lda #$00 I 7B2 e6f3 6a ror a I 7B3 e6h Bd 9e 03 sta logscr logical/physical scroll flag I 7B4 e6f7 60 rts I 7B5 e6fb I 7B6 e6fb I 7B 7 e6fb ===> Funktionstasten setzen, ändern, Listen <=== I 7BB e6fb I 7B9 e6fb 7B keyfun sei 1790 e6f9 BB dey 1791 e6fa 30 03 bmi listky def. Funktionstasten-liste 1792 e6fc 4c be e7 jmp addkey zusätzliche Funktions-tasten 1793 e6ff I 794 e6ff 1795 e6ff ===> def. Funktionstasten-liste <=== 1796 e6ff 1797 e6ff ao 00 listky ldy #$00 179B I 799 e70 I e702 cb Be b7 03 sty sedt3 listlp iny temporär List Funktionstasten IBOO e 705 BB dey IBO I e706 b9 B3 03 lda keysiz,y Funktionstasten (20bytes} IB03 index programmierbare befehle IB04 e70e 20 49 e9 jsr findky funktiontasten-adr. in ac,xr IB05 e7 II B5 c2 sta keypnt addrl akt. pgm tastenpuffer IB06 e7 13 B6 c3 stx keypnt., addrh akt. pgm tastenpuffer IB02 e709 e70b fo 6c Bd 9d 03 beq nodefn sta keyidx IB07 e7 15 a2 03 ldx #$03 I BOB e717 bd a6 e7 preamb lda keword,x text für Funktions-tasten 1809 e71a 20 d2 ff jsr kbsout ausgabe I char auf akt. kanal 1810 elld ca dex IB" elle 10 f7 bpl preamb IB 12 e720 a2 2f ldx #$2f IBI3 e722 ad b7 03 lda sedt3 temporär List Funktionstasten IBH e725 3B sec IBI5 e726 eb ky2asc inx IBI6 e 72 7 e9 Oa sbc #$0a IB I 7 e729 bo fb bcs ky2asc 1818 e72b 69 Ja adc #$3a IB 19 e72d eo 30 cpx #$30 1820 e72f fo 06 beq nosec IB21 e73 I 48 pha 1822 IB23 e732 e733 20 d2 ff jsr Ba txa kbsout ausgabe char auf akt. kanal 1824 e736 68 pla IB25 e737 20 d2 ff nosec jsr kbsout 1826 e73a ao 00 ldy #$00 ausgabe char auf akt. kanal 1827 e73c a9 2c lda #S2c IB28 e lje 20 d2 ff lstk20 jsr lebsaut ausgabe I char auf akt. kanal 1B29 eh I a2 07 ldx #$07 IB30 e 743 20 B2 e2 txtprt jsr pagst2 segment Funktionstasten setzen

610/710 os-editor2 hard+soft ass/reass..... seite 0036 zeile adr. obj.-code source-code 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 IBH 1845 1846 1847 1848 1849 1850 185 I 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 e746 e748 ehb ehd e7h e75 I e753 e755 e75 7 e759 e75b e75c e75e e76 I e762 e765 e767 e768 e76b e 76d e76f e 712 e774 e777 e77a e 7 7c e 77e e7 7f e780 e 78 I e7b I e7b I e783 e784 e786 e787 1867 e789 1868 e7ba 1869 e78b 1870 e78d 1871 e790 1872 e792 1873 e795 1874 e796 1875 e798 bl c2 20 91 e2 c9 Od fo 32 c9 Bd fo 31 c9 22 fo 30 eo 09 fo 07 48 a9 22 20 d2 ff 68 20 d2 ff a2 09 cb cc 9d 03 do d6 a9 22 20 d2 ff a9 Od 20 d2 ff ac b 7 03 co 14 do 83 58 18 60 a2 Oa 2c a2 73 2c a2 Oe Ba 48 a2 06 bd aa e7 fo Oa 20 d2 ff ca 70 f5 68 1876 e799 aa 1877 e79a do f7 1878 e79c c8 1879 e79d cc 9d 03 1880 e7a0 fo do 7887 e1a2 a9 2b 1882 e7a4 do 98 1883 1884 1885 lda lkeypnt),y jsr pagres cmp tt$od beq lstkcr cmp #$Bd beq lstksc cmp #$22 beq Istkat cpx tt$09 beq IstklO pha lda tt$22 jsr kbsout pla lstk70 jsr kbsout ldx tt$09 iny cpy keyidx bne txtprt lda #$22 jsr kbsout lstk30 lda #$0d jsr kbsout nodefn ldy sedt3 cpy #$ 14 bne listlp cli clc rts lstkcr ldx #$Oa.byte $2c lstksc ldx #$73. byte $2c Istkat ldx #$Oe txa pha ldx tt$06 lstklp lda cdword,x beq lstk40 jsr kbsout dex bpl lstklp pla tax bne lstl<lp lst/<40 iny cpy l<eyidx beq lst/<30 lda l$2b bne lst/<20 e7a6 e 7a6 e7a6 ===> text für funktions-tasten <=== 1886 e7a6 1887 e7a6 20 59 45 l<eword.byte yel<' 1887 e7a9 4b addrl akt. pgm tastenpuffer segment zurücksetzen ausgabe ausgabe char auf al<t. /<anal char auf al<t. /<anal index programmierbare befehle ausgabe char auf al<t. /<anal ausgabe char auf al<t. /<anal temporär list Funktionstasten ausgabe 1 char auf al<t. /<anal index programmierbare befehle

610/710 os-editor2 hard+soft ass/reass.... seite 0037 zeile adr. obj.-code source-code IBBB IBBB IBBB e7aa e7ad e7b0 IBBB e7bl oo IBB9 e7b2 IBB9 e7b5 IB90 e7b6 IB90 e7b9 IB91 e7ba IB91 e7bd IB92 e7be IB93 e7be IB94 e7be IB95 e7be IB96 e7be IB9 7 e7bf IB9B e7c0 IB99 e1c2 1900 e7c4 190 I e7c5 1902 e7cb 1903 e7ca 1904 e7cd 1905 e7ce 1906 e7dl 1907 e1d3 190B e7d5 1909 e7d7 1910 e1da 19" e 1dc 1912 e1de 1913 e7e I 1914 e7e3 1915 e7e4 1916 e 7e 7 1917 e7e8 191B e7e9 1919 e7ec aa 1920 e1ed 9B 1921 1922 1923 1924 1925 1926 I 92 7 192B 1929 1930 1931 1932 1933 1934 1935 1936 1937 193B 1939 e1ee e1ef e7fl e7f2 e7h e7f6 e7f9 e7fb e7fc e7fe eboo eb02 eb04 eb06 e809 ebob ebod ebof eb II 2B 24 52 48 43 2b 22 29 33 31 00 29 34 33 00 29 3 I 34 31 cdword.byte "($rhc, $00.byte. 131", $00.byte "143", $00. byte. I I 4 I. ===> zusätzliche funktions-tasten <=== 48 aa B4 d9 b5 00 38 f9 B3 03 B5 da 6e 9c 03 cb 20 49 e9 B5 c4 B6 c5 ao 14 20 49 e9 B5 c6 B6 c7 ac 9c 03 10 13 18 ed BO 03 ab Ba ed BI 03 IB 65 da Ba 69 00 bo 6c 20 82 e2 a5 c6 IB e5 c4 a5 c7 e5 c5 90 2a ao 00 ad 9c 03 10 " a5 c6 do 02 c6 c7 c6 c6 addkey pha tax sty sedtl lda e6509,x sec sbc keysiz,y sta sedt2 ror bitmsk iny jsr findky sta sedsal s tx sedsal>l ldy 1$" jsr findky sta sedeal stx sedeal>l ldy bitmsk bpl keysho clc sbc pkyend tay txa sbc pkyend+l tax tya clc adc sedt2 txa adc 1$00 bcs kyxit keysho jsr pagst2 kymove lda sedeal clc sbc sedsal lda sedeal+t sbc sedsal+t bcc keyins ldy 1$00 lda bitmsk bpl kshort lda sedeal bne newky4 dec sedeal+ I newky4 dec sedeal mehrfach benutzte editorvariable 6509 execution register funktionstasten (20bytesl mehrfach benutzte editorvariable bit mask/funkt.tasten temporär funktiontasten-adr. in ac,xr addrl scroll-zeiger start addrh scroll-zeiger start funktiontasten-adr. in ac,xr addrl scroll-zeiger ende addrh scroll-zeiger ende bit mask/funkt.tasten temporär addrl endadr. funkt.tastenpuffer addrh endadr. funkt.tastenpuffer mehrfach benutzte editorvariable segment funktionstasten setzen addrl scroll-zeiger ende addrl scroll-zeiger start addrh scroll-zeiger ende addrh scroll-zeiger start bit mask/funkt.tasten temporär addrl scroll-zeiger ende addrh scroll-zeiger ende addrl scroll-zeiger ende

610/710 os-editor2 hard+soft ass/reass..... seite 0038 zeile adr. obj.-code source-code 1940 e813 bl c6 lda I sedeall. y addrl scroll-zeiger ende 1941 elll!i a4 da ldy sedt2 mehrfach benutzte editorvariable 1942 e817 91 c6 sta lsedeall,y addrl scroll-zeiger ende 1943 e819 4c f9 e7 jmp kymove 1944 elllc 1945 e81c 1946 elllc bl c4 kshort lda I sedsiil I, y addrl scroll-zeiger start 1947 ebie a4 da ldy sedt2 mehrfach benutzte editorvariable 1948 e820 c6 c5 dec sedsal+l addrh scroll-zeiger start 1949 ell22 91 c4 sta I sednl I, y addrl scroll-zeiger start 1950 e824 e6 c5 sedsal+l inc addrh scroll-zeiger start 1951 e82& e& c4 inc sedsal addrl scroll-zeiger start 1952 ell28 do cf bne kymove 1953 e82a e6 c5 inc sedsald addrh scroll-zeiger s tart 1954 ell2c do cb bne kymove 1955 ell2e a4 keyins mehrfach benutzte editorvariable!956 e830 20 49 e9 jsr findky funktiontasten-adr. in ac,xr d9 ldy sedt1 1957 ell33 85 c4 sta sedsal addrl scroll-zeiger start 19511 e835 8& c5 stx sedsal 1 addrh scroll-zeiger start 1959 e837 a4 d9 ldy sedtl mehrfach benutzte editorvariable 19&0 ell39 &II pla 19&1 ell3a 48 pha!962 e83b aa tax 19&3 ell3c b5 00 lda e6509,x 6509 execution register 19&4 e83e 99 83 03 sta keysiz,y Funktionstasten l20bytesj 1965 eh! ab tay 19&& e842 fo Ia beq kyinok 19&7 e8h b5 01 lda i6509, X &509 indirection register 1968 ebh 85 c6 sta sedeal addrl scroll-zeiger ende 1969 e8u b5 02 lda usrpok,x jmp code für usr -routine 1970 e84a 85 c7 sta sedeal+! addrh scroll-zeiger ende 19 7 I e84c 88 kyinlp dey 1972 e84d b5 03 lda usrpok+1, x addrl usr -routine 1973 e8h 85 01 s ta i6509 6509 indirection register 1974 e85! bl c6 lda (sedeal},y addrl scroll-zeiger ende 1975 e853 20 91 e2 jsr pagres segment zurücksetzen 1976 e856 zo 82 e2 jsr pagst2 segment funktionstasten setzen 19 77 e859 91 c4 sta I udsal J, y addrl scroll-zeiger start 1978 e85b 98 tya 1979 e85c do ee bne kyinlp 1980 e85e 20 91 e2 kyinok jsr pagres segment zurücksetzen 1981 e86! 18 clc 1982 e862 68 kyxit pla 1983 e863 58 cli 1984 e864 &0 rts 1985 e865 1986 eb65 1987 e865 ===> tast. lesen, in puffer schreiben <=== 1988 e865 1989 e865 ao ff key ldy #l$ff 1990 e867 84 eo sty modkey flag shift/control-taste 1991 e869 84 el sty norkey flag normale taste 1992 e86b cb iny 1993 e86c Be 01 df sty tri2 pb &525 triport 2: port reg. b 199, e86f Be 00 df sty tri2+pa 6525 triport 2: port reg. a 1995 e872 20 le e9 jsr getkey tastaturabfrage Über triport 2 1996 eb75 29 3f and #l$3f 1997 e877 49 3f eor #l$3f

610/710 os-editor2 hard+soft ass/reass.... seite 0039 zeile adr. obj.-code source-code 1998 e879 do 03 bne keyxl 1999 e87b 4c f3 e8 jmp nulxit 2000 e87e 2001 e8 7e 2002 e87e a9 ff keyxl lda l$ff 2003 e880 8d 00 df sta tri2+pa 6525 triport 2: port reg. a 2004 e883 Oa asl a 2005 e884 8d 01 df sta tri2+pb 6525 triport 2: port reg. b 2006 e887 20 le e9 jsr getkey tastaturabfrage Über triport 2 2007 e88a 48 pha 2008 e88b 85 eo sta modkey flag shift/control-taste 2009 e88d 09 30 ora 1$30 2010 e88f do 03 bne lineoi 20 II e891 20 le e9 linelp jsr getkey tastaturabfrage Über triport 2 2012 e894 a2 05 lineoi ldx 1$05 2013 e896 4a kyloop lsr a 2014 e897 90 10 bcc havkey tastenwert aus tabeile lesen 2015 e899 c8 iny 2016 e89a ca dex 2017 e89b 10 f9 bpl kyloop 2018 e89d 38 sec 2019 e89e 2e 01 df rol tri2+pb 6525 triport 2: port reg. b 2020 e8a I 2e 00 df rol tri2+pa 6525 triport 2: port reg. a 2021 e8a4 bo eb bcs linelp 2022 e8a6 68 pla 2023 e8a 7 90 h bcc nulxit 2024 e8a9 2025 e8a9 2026 e8a9 ===> tastenwert aus tabelle lesen <=== 2027 e8a9 2028 e8a9 84 el havkey sty norkey flag normale taste 2029 e8ab be 29 ea ldx normtb,y code-tab. für tastatur 1-shift) 2030 e8ae 68 pla 2031 e8af oa asl a 2032 e8b0 oa asl a 2033 e8bl oa asl a 2034 e8b2 90 Oe bcc doctl 2035 e8b4 30 Of bmi havasc tastenwert in ta s t. -puffer 2036 e8b6 be 89 ea ldx shfttb, y code-tab. für tastatur (+shift) 2037 e8b9 a5 cc lda grmode flag für grafikltext-modus 2038 e8bb fo 08 beq havasc tastenwert in tast.-puffer 2039 e8bd be e9 ea ldx shftgr, y code-tab. für tastatur (graphik+shift) 2040 e8c0 do 03 bne havasc tastenwert in tast.-puffer 2041 e8c2 be 49 eb doctl ldx ctltbl, y code-tab. für tastatur lcontrol-modus) 2042 e8c5 2043 e8c5 2044 e8c5 ===> tastenwert in tast.-puffer <=== 2045 e8c5 2046 e8c5 eo ff havasc cpx 1$ff 2047 e8c7 fo Zc beq keyxit 2048 e8c9 eo eo cpx l$e0 2049 e8cb 90 09 bcc notfun 2050 ebcd 98 tya 2051 e8ce 48 pha 2052 e8cf 20 27 e9 jsr funjmp aufruf funktionstasten lind.-vektor) 2053 e8d2 68 pla

610/710 os-editor2 hard soft ass/reass.... seite 0040 zeile adr. obj.-code source-code 2054 e8d3 2055 e8d4 2056 e8d6 2051 ebd7 2058 ebd9 2059 ebdb 2060 ebdd 2061 ebdf 2062 ebe! 2063 ebe3 2064 ebe5 2065 ebe7 2066 ebe9 2067 ebeb 2068 ebed 2069 ebfo 2070 ebfl 2071 ebf3 2072 ebf5 2073 ebf7 2074 ebf9 2075 ebfc 2076 ebfe 2077 e901 207B e902 2079 e902 ab bo lf Ba c4 cd fo 27 a2 13 B6 db a6 dl eo 09 fo Oe co 59 do 29 eo OB fo 06 9d ab 03 eb do!f ao ff B4 cd a2 7f Be 00 df a2 ff Be 01 df 60 tay bcs keyxit notfun txa cpy lstx beq dorat ldx 1$13 stx delay ldx ndx cpx 11$09 beq nulxit cpy 11$59 bne savkey cpx ii$0b beq nulxit sta keyd,x inx bne savkey nulxi t ldy l$ff keyxit sty lstx keyxt2 ldx II$ 7f stx tri2+pa ldx l$ff stx tri2 pb rts 20BO e902 ===> repeat-schleife <=== 20B! e902 20B2 e902 20B3 e904 20B4 e906 20B5 e90b 20B6 e90a 20B 7 e90c 20BB e90e 20B9 e910 2090 e912 2091 e915 2092 e916 2093 e91b 2094 e91a 2095 e91c 2096 e91e 2097 e91e c6 db 10 fl e6 db c6 d7 10 eb e6 d7 a6 d! do e5 9d ab 03 eb B6 d! a2 03 B6 d7 do d7 dorat dec delay bpl keyxt2 inc delay dec rptcnt bpl keyxt2 inc rptcnt ldx ndx bne keyxt2 savkey sta keyd,x inx stx ndx ldx 1$03 stx rptcnt bne keyxit 209B e91e ===> tastaturabfrage Über triport 2 <=== 2099 e91e 2100 e91e 2101 e921 2102 e924 2103 e926 60 2104 e927 2105 e927 ad 02 df Cd 02 df do f8 getkey lda tri2+pc cmp tri2 pc bne getkey rts 2106 e927 6c b5 03 funjmp jmp lfunvec} 2107 e92a ZIOB e9za 2109 e92a c4 cd cpy lstx 2110 e92c fo 19 beq funrts 2111 e92e a5 d! lda ndx index letztes zeichen repeat-schleife zeit bis zum einsetzen des repeat anzahl bytes im tastaturpuffer tastaturpuffer 110 bytesl index letztes zeichen 6525 triport 2: port reg. a 6525 triport 2: port reg. b zeit bis zum einsetzen des repeat zeit bis zum einsetzen des repeat zeit zwischen zeichen bei repeat zeit zwischen zeichen bei repeat anzahl bytes im tastaturpuffer tastaturpuffer 110 bytesl anzahl bytes im tastaturpuffer zeit zwischen zeichen bei repeat 6525 triport 2: port reg. c 6525 triport 2: port reg. c tastaturabfrage Über triport 2 addrl ind. jmp für Funktionstasten index letztes zeichen anzahl bytes im tastaturpuffer

610/710 os-editor2 hard+soft ass/reasso 0 zeile adro objo-code source-code 0 o o oseite 00" 2112 e930 05 d6 ora kyndx Zeichenzähler für pgm tastenbefahl 2113 e932 do 13 bne funrts 2114 e934 Bd 9d 03 sta keyidx index programmierbare befehle 2115 e937 Ba txa 2116 e938 29 lf and #$1f 2 II 7 e93a ab tay 2118 e93b b9 83 03 lda keysiz,y funktionstasten (20bytesl 2119 e93e 85 d6 sta kyndx zeichenzählet für pgm tastenbefahl 2120 e940 20 49 e9 jsr findky funktiontasten-adro in ac,xr 2121 e90 85 c2 s ta keypnt addrl akt 0 pgm tastenpuffer 2122 e945 86 c3 stx keypnt+l addrh akt 0 pgm tastenpuffet 2123 e9h 38 funrts sec 2124 e948 60 rts 2125 e949 2126 e949 2127 e949 ===> funktiontasten-adro in ac,xr <=== 2128 e949 2129 e949 a5 co findky lda pkybuf addrl start programmierbare tasten 2130 e94b a6 cl ldx pkybuf+l addrh start programmierbare tasten 2131 e94d 18 findlp clc 2132 ehe 88 dey 2133 e9h 30 OB bmi fndout 2134 e951 79 83 03 adc keysiz,y funktionstasten (20bytes} 2135 e954 90 f7 bcc findlp 2136 e956 eb inx 2137 e957 do H bne findlp 2138 e959 60 fndout rts 2139 e95a 2140 e95a 2141 e95a ===> tabulator holen <=== 2142 e95a 210 e95a 98 gettab tya 21H e95b 29 07 and #$07 2145 e95d aa tax 2146 e95e bd 67 ec lda keyend,x bit-tabelle für zeilen-link 21H e961 Bd 9c 03 sta bitmsk bit mask/funktotasten temporär 2148 e964 98 tya 2149 e965 4a lsr a 2150 e966 4a lsr a 2151 e967 4a lsr a 2152 e968 aa tax 2153 e969 bd a I 03 lda tab,x tabstop flags (maxo IObyt/BObit} 2154 e96c 2c 9c 03 bit bitmsk bit mask/funktotasten temporär 2155 e96f 60 rts 2156 e970 2157 e970 2158 e970 ===> bearbeitung von esc-funktionen <=== 2159 e9 70 2160 e970 29 7f escape and #$7f 2161 e972 38 sec 2162 e973 e9 sbc #$41 2163 e975 c9 Ia cmp #$Ia " 2164 e977 90 01 bcc escgo esc-sequenz-adro auf stack 2765 e979 2166 e979 2167 e979 ===> esc-sequenz abbrechen (esc, xl <=== 2168 e979 2169 e979 60 escrts rts

610/710 os-editor2 hard+soft ass/reass..... seite 0042 zeile adr. obj.-code source-code 2170 e97a 2171 e97a 2172 e97a 2113 e97a ===> esc-sequenz-adr. auf stack <=== 2174 e97a oa escgo asl a 2115 e97b aa tax 2176 e97c bd 86 e9 lda escvct+ 1. x adress-tabelle der esc-routinen (esc a-zl 2177 e97f 48 pha 2178 e980 bd 85 e9 lda escvct.x adress-tabelle der esc-routinen (esc a-zl 2119 e983 48 pha 2180 e984 60 rts 2181 e985 2182 e985.end 2183 e985.lib editor3

610/710 os-editor3 hard+soft ass/reass.... seite 0043 zeile adr. obj.-code source-code 218S e98s 2186 e98s ===> adress-tabelle der esc-routinen lese a-zl <=== 2181 e98s 2188 e98s 2189 e981 2190 e989 2191 e98b 2192 e98d 2193 e98f 2194 e991 219S e993 2196 e99s 2191 e991 2198 e999 2199 e99b 2200 e99d 2201 e99f 2202 e9a I 2203 e9a3 2204 220S 2206 2207 2208 2209 2210 22 II 2212 2213 2214 221S 2216 2211 2218 2219 2220 2221 2222 e9a5 e9a 7 e9a9 e9ab e9ad e9af e9bl e9b3 e9bs e9b7 e9b9 e9b9 e9b9 e9b9 e9b9 e9ba e9bb e9bb e9bb 22 ea ba e9 lf ea 6c e6 ee e9 es e9 d5 e9 d7 e9 57 e6 3 I es 43 e5 e2 e6 e4 e6 04 ea a I e3 ab e6 93 e6 fs e9 eb e9 b8 e9 db e9 bc e6 ca e6 78 e9 01 ea f8 e9 escvct.word auton-1. word sethtb- I.word autoff-1. word dline- I.word setcr4-l.word setcr2-l.word bellon-1.word bellof-1. word iline- I.word fndfst-1.word fndend-1.word scrsw0-1.word scrswl-1. word nrmscr- I. word toqm- I. word etosol- I. word e toeol- I.word revscr-1.word setcr3-l.word sethtt-1.word setcrl-1.word suup-1.word sddn- I.word escrts-1.word nrmset-1.word usrset-1 auto insert'-modus ein lese, al cursorpos- = untere rechte bildschirm-ecke lese, bl 'auto insert'-modus aus lese, cl aktuelle zeile löschen lese, dl festen cursor ein lese, e) blinkenden cursor ein lese, f) glocke am zeilenende ein lese, g) glocke am zeilenende aus lese, hl zeile unter aktueller zeile einfügen lese, i I cursor an zeilenanfang lese, j) cursor an zeilenende lese, kl bildschirm-scroll ein lese, 11 bildschirm-scroll aus lese, ml bildschirm revers auf 'normal' lese, nl 'inst- quote- rvs -mode aus zeile von cursor bis anfang löschen lese, p) zeile von cursor bis ende löschen lese, q) bildschirm normal' auf revers lese, rl vollen cursor ein lese, sl cursorpos. = obere linke bildschirm-ecke lese, t I unterstrich-cursor ein lese, ul bildschirm aufwärts rollen lese, vl bildschirm abwärts rollen lese, wl esc-sequenz abbrechen lese, xl standard zeichengen. ein lese, yl benutzer zeichengen. ein lese, zl ===> cursorpos. = obere linke bildschirm-ecke lese, tl <=== 18 24 2223 e9bb 2224 e9bb 38 2225 e9bc 2226 e9bc 2227 2228 2229 2230 ZZ31 2232 2233 2234 e9bc e9bc e9bc e9be e9c0 e9c2 e9c2 e9c2 sethtt clc.byte $24 ===> cursorpos- = untere rechte bildschirm-ecke lese, b) <=== sethtb sec ===> bs-fenster links oben l$0fl I rechts unten l$8fl <=== a6 cb a5 ca 90 Of ===> ac window ldx pntr lda tblx bcc settps cursor spalte cursor zeile ac = obere, xr bildschirm-ecke untere, xr rechte bildschirm-ecke <=== linke

610/710 os-editor3 hard+soft ass/reass.... seite 0044 zeile adr. obj.-eode souree-code 2235 2236 2231 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 e9e2 e9c2 e9e4 e9e6 e9e7 e9e7 e9e7 e9e7 e9e7 e9es e9cb e9ce e9d0 e9dl e9dl e9dl e9dl e9dl e9d3 e9d5 e9d6 e9d6 85 dd 86 df 60 setbts sta scbot stk sert rts ==~> bs-fenster auf volle grosse lhome-homel <=== a9 18 a2 4f 20 cz e9 a9 00 aa ===> ae 85 dc 86 de 60 sreset lda 1$!8 ldk 1$4f jsr setbts lda 1$00 tak unterste zeile bildschirm I0-251 rechter rand bildsehirm ac = untere, xr bildschirm-eeke obere, xr = linke bildsehirm-ecke <=== settps sta setop stk self rts 2257 e9d6 ===> glocke am zeilenende ein lese, gl <=== 2258 e9d6 2259 e9d6 a9 00 2260 e9d8 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2211 2272 2273 2214 2275 2276 2277 e9d8 e9d8 e9d8 e9d8 e9db e9de e9dc e9de e9de e9dc e9de e9el e9e3 e9e5 e9e6 e9e6 e9e6 2278 e9e6 2279 e9e6 2280 e9e8 2281 e9ea 2282 e9ec 2283 e9ee bellon lda #$00 ===> glocke am zeilenende aus lese, hl <=== rechte oberste zeile bildsehirm 10-251 linker rand bildsehirm 8d 9f 03 bellof sta bellmd flag für glocke am zeilenende 60 rts ===> unterstrich-cursor ein lese, ul <=== a9 Ob 2c 02 df 30 05 a9 06 2c setcrl lda #$Ob bit tri2+pc bmi setung lda s$06.byte $2c ===> blinkenden cursor ein lese, fl <=== a9 60 05 d4 do 07 seterz lda #$60 setung ora config bne setcr5 2284 e9ec ===> vollen eursor ein lese, sl <=== 2285 e9ec 2286 e9ec a9 fo 2287 e9ee 2c 2288 e9ef 2289 e9ef setcr3 lda #$f0.byte $2e 2290 e9ef ===> festen cursor ein lese, el <=== 2291 e9ef 6525 triport 2: port reg. c cursor type I char. vor blinken

6101710 os-editor3 hard+soft asslreass... seite 0045 zeile adr. obj.-code source-code 2292 e9ef a9 Of setcr4 lda lf$0f 2293 e9f1 25 d4 and config cursor type I char. vor blinken 2294 e9f3 B5 d4 setcr5 sta config cursor type I char. vor blinken 2295 e9f5 60 rts 2296 e9f6 2297 e9f6 229B e9f6 ===> bildschirm 'normal auf revers lese, rj <=== 2299 e9f6 2300 e9f6 a9 20 revscr lda lf$20 2301 e9fb 2c.byte $2c 2302 e9f9 2303 e9f9 2304 e9f9 ===> benutzer zeichengen. ein (esc, zj <=== 2305 e9f9 2306 e9f9 a9 10 usrset lda lf$10 23(}7 e9fb a2 Oe ldx lf$oe 230B e9fd Be 00 db stx vdc+adreg 6B45 vdc: adress-reg. 2309 eaoo Od 01 db ora vdc+dareg 6B45 vdc: daten-reg. 2310 ea03 do Od bne setscr 2311 ea05 2312 ea05 2313 ea05 ===> bildschirm revers auf 'normal' lese, n} <=== 23" ea05 2315 ea05 a9 df nrmscr lda lf$df 2316 ea07 2c.byte $2c 2317 eaob 231B eaob 2319 eaob ===> standard zeichengen. ein (esc, y} <=== 2320 eaob 2321 eaob a9 ef nrmset lda lf$ef 2322 eaoa a2 Oe ldx lf$0e 2323 eaoc Be 00 db stx vdc+adreg 6B45 vdc: adress-reg. 2324 eaof 2d 01 db and vdc dareg 6B45 vdc: daten-reg. 2325 ea12 Bd 01 db setscr sta vdc dareg 6B45 vdc: daten-reg. 2326 ea15 29 30 and lf$30 2327 ea17 a2 Oe ldx lf$oc 232B ea19 Be 00 db stx vdc+adreg 6B45 vdc: adress-reg. 2329 ea1c Bd 01 db sta vdc+dareg 6B45 vdc: daten-reg. 2330 ea1f 60 rts 2331 ea20 2332 ea20 2333 ea20 ===> 'auto insert'-modus aus lese, c} <=== 2334 ea20 2335 ea20 a9 00 autoff lda #$00 2336 ea22 2c.byte $2c 2337 ea23 233B ea23 2339 ea23 ===> 'auto insert'-modus ein (esc, a J <=== 2340 ea23 2341 ea23 a9 ff auton lda #$ff 2342 ea25 Bd 9a 03 sta insflg auto insert flag 2343 ea2b 60 rts 2344 ea29 ZJ45 eal9 2346 ea29 ===> code-tab. für tastatur (-shiftj <=== 2341 ea29 234B ea29 eo normtb. byte $e0, $1b, $09, $ff, $00, $01 234B ea2a 1b

610/710 os-editor3 hard+soft ass/reass..... seite 0046 zeile adr. obj. -code source-code 2348 ea2b 09 2348 ea2c ff 2348 ea2d 00 2348 ea2e 01 2349 ea2f el. byte Se I. $3 I, $51. $41. $5a, $ff 2349 ea30 31 2349 ea31 51 2349 ea32 2349 ea33 5a " 2349 ea34 ff 2350 ea35 e2.byte $e2, $32. $57. $53, $58, $43 2350 ea36 32 2350 ea37 57 2350 ea38 53 2350 ea39 58 2350 ea3a 43 2351 ea3b e3. byte $e3, $33, $45, $H, $46, $56 2351 ea3c 33 2351 ea3d 45 2351 ea3e H 2351 ea3f 46 2351 ea40 56 2352 ea41 e4.byte $e4, $34, $52. $54, $41, $42 2352 ea42 34 2352 ea43 52 2352 ea44 54 2352 ea45 47 2352 ea46 42 2353 eah e5.byte $e5, $35, $36, $59, $48, $h 2353 ea48 35 2353 ea49 36 2353 ea4a 59 2353 ea4b 48 2353 ea4c 4e 2354 ea4d e6.byte $e6, $37, $55, $4a, $4d, $20 2354 ea4e 37 2354 eah 55 2354 ea50 41 2354 ea51 4d 2354 ea52 20 2355 ea53 &7. byte Se 7, $38, $49, $4b, $2c, $2e 2355 ea54 38 2355 ea55 49 2355 ea56 4b 2355 ea57 2c 2355 ea58 2e 2356 &159 &8.byte $e8, $39, $H, $4c. $3b, $2f 2356 ea5a 39 2356 ea5b 4f 2356 ea5c 4c 2356 ea5d 3b 2356 ea5e 2f 2357 ea5f e9.byte $e9, $30, $2d, $50, $5b, $27 2351 ea60 30 2357 ea61 2d 2351 ea62 50 2357 ea63 5b 2357 ea64 27

610/TIO os-editor3 hard+soft ass/reass.... seite OOH zeile adr. obj.-code source-code " 2358 ea65. byte S II, $3d, $5f, $5d, $0d, $de 2358 ea66 3d 2358 ea6t 5f 2358 ea6b 5d 2358 ea69 Od 235B ea6a de 2359 ea6b 91 2359 ea6c 9d.byte $91, $9d, $1d, s". $02, Sff 2359 ea6e 2359 ea6f 02 2359 ea6d ld " 2359 ea TO ff 2360 eati 13.byte $13, $3f, $3T. $34, $3'. $30 2360 ea T2 3f 2360 eat3 3T 2360 ea T4 34 2360 ea T5 31 2360 ea T6 30 2361 ea77 12.byte $12, $04, $3B, $35, $32, $2e 236' ea TB 04 2361 ea T9 3B 236' ea Ta 35 2361 ea Tb 32 2361 ea Tc 2e 2362 ea Td Be. byte $Be, $2a, $39, $36, $33, $30 2362 ea Te 2a 2362 ea 7f 39 2362 eabo 36 2362 ea81 33 2362 ea82 30 2363 ea83 03.byte $03, $2f, $2d, $2b, $0d, Sff 2363 ea84 2f 2363 ea85 2d 2363 ea86 2b 2363 eabt Od 2363 eabb ff 2364 eab9 2365 eab9 2366 eab9 ===> code-tab. für tastatur l+shiftl <=== 236T eab9 236B eab9 ea shfttb.byte Sea, $1b, $B9, $ff, $00, $01 2368 ea8a lb 236B eabb B9 2368 eabc ff 2368 eabd 00 236B eabe 01 2369 eabf eb.byte Seb, $2'. $dl, Sei, $da, Sff 2369 ea90 21 2369 ea91 dl 2369 ea92 cl 2369 ea93 da 2369 ea94 ff 23TO ea95 ec.byte Sec, $40, $d7. $d3, $db, $c3 2370 ea96 40 2370 ea97 d7 2370 ea9b d3 2370 ea99 db 2310 ea9a c3

610/710 os-editorj hard+soft ass/reass.... seite 0048 zeile adr. obj.-code source-code 2371 ea9b ed. byte Sed, S2J, SeS, Sc4, Sc6, Sd6 2371 ea9c 2J 2J71 ea9d es 2J 71 ea9e c4 2371 ea9f c6 2371 eaao d6 2372 eaal ee.byte See, S24, Sd2, Sd4. Sc7. Sc2 2372 eaa2 24 2J72 eaaj d2 2372 eaa4 d4 2J72 eaas c7 2J72 eaa6 c2 237J eaa 7 ef. byte Sef, S2S, sse. Sd9, $c8, See 237J eaa8 2S 237J eaa9 Se 237J eaaa d9 237J eaab c8 237J eaac ce 2J74 eaad fo. byte $f0, S26, SdS, Sca, $cd, $a0 2J74 eaae 26 2374 eaaf ds 2374 eabo ca 2374 eabl Cd 2J74 eab2 ao 2J7S eabj fl. byte $f I, $2a, $c9, $cb, $Je, $Je 2J7S eab4 2a 2J7S eabs c9 2J7S eab6 cb 2J7S eab7 Je 237S eab8 Je 2376 eab9 f2.byte $f2, $28. $cf, Sec, $Ja, $Jf 2376 eaba 28 2376 eabb cf 2376 eabc cc 2J76 eabd Ja 2J76 eabe Jf 2377 eabf fj. byte $fj. $29, $2d, $d0, $Sb. $22 2J77 eaco 29 2J77 eac I 2d 2J77 eac2 do 2J77 eacj 5b 2J 77 eac4 22 2J78 eac5 II. byte $11, $2b, $5c, $Sd, $8d, $de 2378 eac6 2b 2J78 eac7 5c 2J 78 eac8 5d 2378 eac9 8d 2378 eaca de 2J79 eacb 91.byte $91, $9d, $ld, $94, $82, $ff 2J79 eacc 9d 2J79 eacd ld 2J79 eace 94 2379 eacf 82 2379 eado ff 2380 eadl 93. byte $93. SJf, SJ7. SJ4. SJI. $JO 2J80 ead2 Jf 2J80 ead3 J7 2380 ead4 34

610/710 os-editor3 hard+soft ass/reass.... seite 0049 zeile adr. obj.-code source-code 2380 ead5 31 2380 ead6 30 2381 ead7 92. byte $92, SB,, $38, $35, $32, $2e 2381 eadb 84 2381 ead9 38 2381 eada 35 2381 eadb 32 2381 eadc 2e 2382 eadd Oe.byte soe, $2a, $39, $36, $33, $30 2382 eade 2a 2382 eadf 39 2382 eaeo 36 2382 eael 33 2382 eae2 30 2383 eae3 83.byte $83, $2f, $2d, $2b, $8d, Sff 2383 eae4 2f 2383 eae5 2d 2383 eae6 2b 2383 eae7 Bd 2383 eaeb ff 2384 eae9 2385 eae9 2386 eae9 ===> code-tab. für tastatur lgraphik+shiftl <=== 2387 eae9 2388 eae9 ea shftgr.byte Sea, Slb, $89, Sff, $00, $01 2388 eaea lb 2388 eaeb 89 2388 eaec ff 2388 eaed 00 2388 eaee 01 2389 eaef eb.byte Seb, $21' $dl, Sc I, $da, Sff 2389 eafo 21 2389 eafl dl 2389 eaf2 cl 2389 eaf3 da 2389 eaf4 ff 2390 eaf5 ec.byte Sec, s,o, $d7' $d3, $db, Sco 2390 eaf6 40 2390 eaf7 d7 2390 eaf8 d3 2390 eaf9 d8 2390 eafa co 2391 eafb ed.byte $ed, $23, $c5, $c4, $c6, Sc3 2391 eafc 23 2391 eafd c5 2391 eafe c4 2391 eaff c6 2391 eboo c3 2392 eboi ee.byte See, $2,, $d2, $d4, $c7, $c2 2392 eb02 24 2392 eb03 d2 2392 eb04 d4 2392 eb05 c7 2392 eb06 c2 2393 eb07 ef. byte $ef, $25' $5e, $d9, $c8, $dd 2393 eb08 25 2393 eb09 Se 2393 eboa d9

610/710 os-editorj hard+soft ass/reass..... seite 0050 zeile adr. obj. -code source-code 2J9J ebob c8 2J9J eboc dd 2J94 ebod fo.byte $f0, $26, $d5, $ca, $cd, $ao 2J94 eboe 26 2J94 ebof d5 2J94 ebio ca 2J94 ebll cd 2J94 ebl2 ao 2J95 ebij fl. byte $fl, $2a, Se9, Scb, $Je, $Je 2J95 ebl4 2a 2J95 ebl5 e9 2J95 ebl6 cb 2J95 ebl7 Je 2J95 ebl8 Je 2J96 ebl9 f2.byte $f2, $28, Sef, $d6, $Ja, $Jf 2J96 ebla 28 2J96 eblb Cf 2J96 eblc d6 2J96 ebld Ja 2J96 eble Jf 2J97 eblf fj. byte SfJ, $29, $2d, $d0, $5b, $22 2J97 eb20 29 2397 eb21 2d 2J97 eb22 do 2J97 eb2j 5b 2J91 eb24 22 2398 eb25 2J98 eb26 2b ". byte S II, $2b, $5c, $5d, $8d, Sde 2J98 eb27 5c 2J98 eb28 5d 2J98 eb29 8d 2J98 eb2a de 2399 eb2b 9 I. byte $9 I, $9d, $Ia, $94, $82, $ff 2J99 eb2c 9d 2J99 eb2d Ia 2J99 eb2e 94 2J99 eb2f 82 2J99 ebjo ff 2400 eb31 9J. byte $93, $Jf. $J7. $J4, $3 I, $JO 2400 eb32 3f 2400 eb33 37 2400 eb34 J4 2400 ebj5 31 2400 ebj6 30 2401 ebj7 92.byte $92, $04, $J8, $35, $J2, S2e 2401 ebj8 04 240 I ebj9 J8 2401 ebja J5 2401 eb3b J2 2401 eb3e 2e 2402 eb3d Oe.byte $Oe. S2a, $39. $36, $33, $30 2402 eb3e 2a 2402 eb3f J9 2402 eb40 36 2,02 eb" 33 2402 eb42 JO 240J ebo 8J.byte $83, $2f, $2d, $2b, $8d, $ff 240J ebh 2f

610/710 os-editor3 hard+soft ass/reass.... seite 0051 zeile adr. obj.-code source-code 2403 ebh 2d 2403 ebh 2b 2403 ebh 8d 2403 eb48 ff 2404 eb49 2405 eb49 2406 eb49 ===> code-tab. für tastatur (control-modusl <=== 2407 eb49 2408 eb49 ff ctltbl. byte $ff, $ff, $ff. $ff, $ff, $ff 2408 eb4a ff 2408 eb4b ff 2408 eb4c ff 2408 eb4d ff 2408 eb4e ff 2409 ebh ff.byte $ff, $a I, $71. 2409 eb50 a I $Ia, $0 ' $ff 2409 eb51 11 2409 eb52 01 2409 eb53 Ia 2409 eb54 ff 2410 eb55 ff. byte $ff, $a2, $77, $73, $18, $03 2410 eb56 a2 2410 eb57 17 2410 eb58 13 2410 eb59 18 2410 eb5a 03 2411 eb5b ff. byte $ff, $a3, $05, $04, $06, $16 2411 eb5c a3 2411 eb5d 05 24 11 eb5e 04 2411 eb5f 06 24 11 eb60 16 2412 eb61 ff. byte $ff, $a4, $12, $". $07. $02 2472 eb62 a4 2472 eb63 72 2472 eb64 " 2472 eb65 07 2472 eb66 02 2473 eb67 ff. byte $ff, $a5, $a 7, s 79, $08, $Oe 2473 eb68 a5 2473 eb69 a7 2473 eb6a 19 2473 eb6b 08 2473 eb6c Oe 24" eb6d ff. byte $ff. $be, $75, $0a, $Od, $ff 24" eb6e be 2414 eb6f 75 24" eb70 Oa 24" eb71 Od 2414 eb72 ff 2475 eb73 ff. byte $ff, $bb, $09, $Ob, $ce, $ff 2475 eb74 bb 2475 eb75 09 2475 eb76 Ob 2475 eb77 ce 2475 eb78 ff 2416 eb79 ff. byte $ff, $bf. $0f. $Oe. $dc, $ff 2416 eb7a bf

610/710 os-editor3 hard+soft ass/reass... seite 0052 zeile adr. obj.-code source-code 2416 eb7b Of 2416 eb7c Oe 2416 eb7d dc 2416 eb7e ff 2417 eb7f ff. byte $ff, $ac, $bc, $10, Sec, $ab 2417 ebbo ac 2417 ebbi bc 2417 ebb2 10 2417 eb83 cc 2417 eb84 ab 241B eb85 ff. byte $ff, $a9, $df, $ba, $ff, $a6 241B ebb6 a9 2418 eb87 df 2418 ebb8 ba 2418 eb89 ff 2418 eb8a a6 2419 eb8b ff. byte $ff, $ff, $ff, $ff, $ff, $ff 2419 eb8c ff 2419 eb8d ff 2419 ebbe ff 2419 ebbf ff 2419 eb90 ff 2420 eb91 ff. byte $ff, $b7. $b4. $bl. $b0, $ad 2420 eb92 b7 2420 eb93 b4 2420 eb94 bl 2420 eb95 bo 2420 eb96 ad 2421 eb97 ff.byte $ff, $b8, $b5, $b2, Sae, $bd 2421 eb98 b8 2421 eb99 b5 2421 eb9a b2 2421 eb9b ae 2421 eb9c bd 2422 eb9d ff. byte $ff, $b9, $b6, $b3, $db, Sff 2422 eb9e b9 2422 eb9f b6 2422 ebao b3 2422 ebal db 2422 eba2 ff 2423 eba3 ff.byte $ff, $af, $aa, $ab, $ff 2423 eba4 af 2423 eba5 aa 2423 eba6 ab 2423 eba 7 ff 2424 ebab ff. byte $ff 2425 eba9 2426 eba9 2427 eba9 2428 eba9 ===> befehlstext 'dload"* -er- run <=== 2429 eba9 H runtb.byte 'd'. $cc 2429 ebaa cc 2430 ebab 22 2a.byte... *. $0d 200 ebad Od Z43! ebae 5Z 55 4e.byte run. $0d 201 ebbl Od 202 ebb2 203 ebb2

610/710 os-editor3 hard+soft ass/reass..... seite 0053 zeile adr. obj.-code source-code 2434 ebb2 ===> tab. anfangs-addrl bs-zeilen <=== 2435 ebb2 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 ebb2 ebb3 ebb4 ebb5 ebb6 ebb7 ebb8 ebb9 ebba ebbb ebbc ebbd ebbe ebbf ebco ebcl ebc2 ebc3 ebc4 ebc5 ebc6 ebc7 ebc8 ebc9 ebca ebcb ebcb 00 50 ao fo 40 90 eo 30 80 do 20 70 co 10 60 bo 00 50 ao fo 40 90 eo 30 80 ldtb2.byte <linzo.byte <linzl. byte <linz2.byte <linz3.byte <linz4.byte <linz5.byte <linz6.byte <linz7.byte <linz8.byte <linz9.byte <linzio. byte <linz II.byte <linzl2.byte <linzl3.byte <linzl4.byte <linzl5.byte <linzl6.byte <linzl7.byte <linzl8.byte <linzl9.byte <linz20.byte <linz21.byte <linz22.byte <linz23.byte <linz24 2463 2464 ebcb ebcb ===> tab. anfangs-addrh der bs-zeilen <=== 2465 2466 2467 2468 2469 2410 2471 2412 2413 2474 2475 2416 2477 2418 2479 2480 ebcb ebcc ebcd ebce ebcf ebdo ebdl ebd2 ebd3 ebd4 ebd5 ebd6 ebd7 ebd8 ebd9 ebda do do do do dl dl dl d2 d2 d2 d3 d3 d3 d4 d4 d4 ldtbl.byte >linzo.byte >linzl.byte >linz2.byte >linz3.byte >linz4.byte >linz5. byte >linz6. byte >linz 7.byte >linz8. byte >linz9.byte >linzio. byte >linz II. byte >linz 12.byte >linzl3. byte >linz 14.byte >linzl5 2481 ebdb d5. byte >linz 16 2482 ebdc d5. byte >linz I 7 2483 ebdd d5. byte >linz 18 2484 ebde d5.byte >linzl9 2485 ebdf d6.byte >linz20 2486 ebeo d6. byte >linz21 2487 ebel d6,byte >linz22 2488 2489 ebe2 ebe3 d7 d7.byte >linz23.byte >linz24 2490 ebe4 2491 ebe4 bildschirm-adr. zeile bildschirm-adr. zeile 2 bildschirm-adr. zeile 3 bildschirm-adr. zeile 4 bildschirm-adr. zeile 5 bildschirm-adr. zeile 6 bildschirm-adr. zeile 7 bildschirm-adr. zeile 8 bildschirm-adr. zeile 9 bildschirm-adr. zeile 10 bildschirm-adr. zeile II bildschirm-adr. zeile 12 bildschirm-adr. zeile 13 bildschirm-adr. zeile 14 bildschirm-adr. zeile 15 bildschirm-adr. zeile 16 bildschirm-adr. zeile 17 bildschirm-adr. zeile 18 bildschirm-adr. zeile 19 bildschirm-adr. zeile 20 bildschirm-adr. zeile 21 bildschirm-adr. zeile 22 bildschirm-adr. zeile 23 bildschirm-adr. zeile 24 bildschirm-adr. zeile 25 bildschirm-adr. zeile I bildschirm-adr. zeile 2 bildschirm-adr. zeile 3 bildschirm-adr. zeile 4 bildschirm-adr. zeile 5 bildschirm-adr. zeile 6 bildschirm-adr. zeile 7 bildschirm-adr. zeile 8 bildschirm-adr. zeile 9 bildschirm-adr. zeile 10 bildschirm-adr. zeile II bildschirm-adr. zeile 12 bildschirm-adr. zeile 13 bildschirm-adr. zeile 14 bildschirm-adr. zeile 15 bildschirm-adr. zeile 16 bildschirm-adr. zeile 17 bildschirm-adr. zeile 18 bildschirm-adr. zeile 19 bildschirm-adr. zeile 20 bildschirm-adr. zeile 21 bildschirm-adr. zeile 22 bildschirm-adr. zeile 23 bildschirm-adr. zeile 24 bildschirm-adr. zeile 25

610/110 os-editor3 hard+soft asslreass... seite 0054 zeile adr. obj.-code source-code 2492 ebe4 ===> adress-tab. der control-routinen <=== 2493 ebe4 2494 ebe4 10 e3 2495 ebe6 10 e3 2496 ebe8 10 e3 2497 ebea lb e6 2498 ebec b9 e4 2499 ebee 10 e3 2500 ebfo 2501 ebf2 2502 ebh 10 e3 Be e4 10 e3 2503 ebf6 59 e3 2504 ebfb 10 e3 2505 ebfa 10 e3 2506 ebfc 2507 ebfe 2508 ecoo 2509 ec02 10 e3 93 e3 4c e2 bb e9 2510 ec04 10 e3 2511 ec06 13 e3 2512 ecob 43 e3 2513 ecoa 49 e3 2514 ecoc ad e5 2515 ecoe 10 e3 2516 ecio 10 e3 2517 ecl2 10 e3 2518 ecl4 10 e3 2519 ecl6 10 e3 2520 ecib 10 e3 2521 ecla 10 e3 2522 eclc 10 e3 2523 ecle 30 e3 2524 ec20 10 e3 Z5Z5 eczz 10 e3 2526 ec24 2527 ec24 ctable.word cuser-1.word cuser-1.word cuser-1. word s tprun- I.ward ce-1.word cuser-1.ward cuser-1.ward bell- I.ward cuser-1.word tabit-1.ward cuser-1. ward cuser- I.ward cuser-1.ward nxtl-1.ward ctext-1.word window-1.ward cuser-1.word cdnup-1.ward rvsf-1.word homclr-1.ward delins-1. word cuser- I.word cuser-1. word cuser- I. word cuser- I.word cuser-1.word cuser-1. word cuser- I.ward cuser-1.ward crtlf-1.ward cuser-1.ward cuser-1 2528 ec24 ===> länge der funktionstasten-befehle <=== user control-funktionen lind.-vektor) user Cantral-funktionen I ind.-vektor J user control-funktionen lind.-vektor) dload"*" er run er 1$83) löscht letzte eingegebene zahl user control-funktionen I ind. - vektor J user control-funktionen I ind.-vektor J glocke anschlagen 1$07 oder $87} user control-funktionen (ind.-vektor) tab 1$09) - setzen/löschen ($89) user control-funktionen lind.-vektor) user control-funktionen lind.-vektor) user control-funktionen I ind.-vektor J carriage return ($0d oder $8d) umsch. text ($Oe) - graphik l$8e) bs-fenster links oben ($0f) I rechts unten l$8f) user control-funktionen I ind. -vektor J cursorunten 1$11) - oben 1$91) revers an 1$12) - off 1$92) cursor home 1$13) - bs clear ($93) zeichen löschen 1$14), einfügen ( $94) user control-funktionen lind.-vektor) user control-funktionen lind.-vektor) user control-funktionen (ind.-vektor) user control-funktionen lind.-vektor) user control-funktionen lind.-vektor) user control-funktionen I ind. -vektor J user control-funktionen lind. -vektor) user control-funktionen lind.-vektor) cursor rechts I$ ld J - links I $9d J user control-funktionen lind.-vektor)

610/710 os-editor3 hard+soft ass/reass... seite 0055 zeile adr. obj.-code source-code 2529 ec24 2530 ec24 05 keylen.byte $05, $04, $06, $06, $05. $06 2530 ec25 04 2530 ec26 06 2530 ec27 06 2530 ec28 05 2530 ec29 06 2531 ec2a 04. byte $04. $09, $01 2531 ec2b 09 2531 ec2c 07 2532 ec2d 05.byte $05 tab. 1 funktionstastenbefehle -I 2533 ecze 2534 ec2e 2535 ec2e ===> tabelle der funktionstasten befehle I t I I <=== 2536 ec2e 2537 ec2e 50 52 49 keydef.byte print 2537 ec31 4e 54 2538 ec33 4c 49 53.byte "list 2538 ec36 54 2539 ec31 44 4c H.byte "dload"" 2539 ec3a 41 44 22 2540 ec3d H 53.byte "dsave" 2540 ec40 56 45 22 " 2541 eco H H 50. byte "dopen 2541 ec46 45 4e 2542 ec48 H 43 4c. byte dclose 2542 ec4b H 53 45 2543 ec4e 43 H 50.byte copy 2543 ec51 59 2544 ec52 H 49 52.byte 'directory' 2544 ec55 45 43 54 25H ec5b H 52 59 2545 ec5b 53 43 52.byte "scratch' " 2545 ec5e 54 43 2545 ec61 48 2546 ec62 43 48 52.byte 'ehr$!' 2546 ec65 24 28 2541 ec67 2548 ec6 7 2549 ec67 ===> bit-tabelle für zeilen-link <=== 2550 ec6 7 2551 ec67 80 keyend.byte $80, $40, $20, $10, $08, $04 2551 ec68 40 2551 ec69 20 2551 ec6a 10 2551 ec6b OB 2551 ec6c 04 2552 ec6d 02. byte $02, $01 2552 ec6e 0 I 2553 ec6f 2554 ec6f 2555 ec6f codetab. I für bs-crt 6845 <=== ===> 2556 ec6f 2557 ec6f 6c atext.byte $6c 2558 ec70 50. byte $50 bildfenster horizontal: 80 zeichen 2559 ec71 53.byte $53 horizontal synch pos.: 83 2560 ec12 Of.byte $0f hori/verti synch widths: 0/15 2561 ec13 19. byte $19 bildschirm vertikal: 25 zeilen

610/710 os-editor3 hard+soft ass!reass... seite 0056 zeile adr. obj.-code source-code 2562 ech 03.byte $03 feinjustierung vertikal: 3 2563 ec75 19.byte $19 bs-fenster vertikal: 25 zeilen 2564 ec76 19.byte $19 vertical synch pos.: 25 2565 ec77 00.byte $00 steuerreg.: alle reg. binär 2566 ec78 Od.byte $0d abtastzeilen/zeichen: 13 2567 ec79 60.byte $60 abtastzeile cursor-obergrenze: 0, blinken ($6xl 2568 ec7a Od.byte $Od abtastzeile cursor-untergrenze: 13 2569 ec7b 00.byte $00, $00 bildschirm start adr. im bs-ram 2569 ec7c 00 2570 ec7d 00.byte $00, $00 cursor-pos. im bildschirmram 2570 ec7e 00 2571 ec7f 00.byte $00, $00 lichtgriffel-adr. bildschirmram 2571 ec80 00 2572 ec81 2573 ec81 2574 ec81 ===> codetab. 2 für bs-crt 6845 <=== 2575 ec81 2576 ec81 7e ntext.byte $7e 2577 ec82 50.byte $50 bildfenster horizontal: 80 zeichen 2578 ec83 62.byte $62 horizontal synch pos.: 98 2579 ec84 Oa.byte $Da hori/vert synch widths: 0/10 2580 ec85 lf.byte $1f bildschirm vertikal: 25 zeilen 2581 ec86 06.byte $06 feinjustierung vertikal: 6 2582 ec87 19.byte $19 bs-fenster vertikal: 25 zeilen 2583 ec88 lc.byte $1c vertical synch pos.: 28 2584 ec89 00.byte $00 steuerreg.: alle reg. binär 2585 ec8a 07.byte $07 abtastzeilen/zeichen: 7 2586 ec8b 00.byte $00 abtastzeile cursor-obergrenze: 0, cursor fest 258 7 ec8c 07.byte $07 abtastzeile cursor-untergrenze: 2588 ec8d 00. byte $00, $00 bildschirm start adr. im bs-ram 2588 ec8e 00 2589 ec8f 00.byte $00, $00 cursor-pos. im bildschirmram 2589 ec90 00 2590 ec91 00.byte $00, $00 lichtgriffel-adr. im bs-ram 2590 ec92 00 2591 ec93 2592 ec93 2593 ec93 ===> codetab. 3 für bs-crt 6845 <=== 2594 ec93 2595 ec93 7f ptext.byte $7f 2596 ec94 50.byte $50 bs-fenster horizontal: 80 zeichen 2597 ec95 60.byte $60 horizontal synch pos.: 96 2598 ec96 Da.byte $Da hori/verti synch widths: 0/10 2599 ec97 26.byte $26 bildschirm vertikal: 38 zeilen 2600 ec98 01.byte $01 feinjustierung vertikal: I 2601 ec99 19. byte $19 bs-fenster vertikal: 25 zeilen 2602 ec9a le.byte $1e vertical synch pos. : 30 2603 ec9b 00.byte $00 steuerreg.: alle reg. binär 2604 ec9c 07.byte $0 7 abtastzeilenlzeichen: 7 2605 ec9d 00. byte $00 abtastzeile cursor-obergrenze: 0, cursor fest 2606 ec9e 07.byte $07 abtastzeile cursor-untergrenze: 2607 ec9f 00.byte $00, $00 bildschirm start adr. im bs-ram 2607 ecao 00 2608 eca I 00.byte $00, $00 cursor-pos. im bildschirmram 2608 eca2 00

610/710 os-editor3 hard+soft ass/reass... seite 0057 zeile adr. obj.-code source-code 2609 eca3 00.byte $00, $00 lichtgriffel-adr. im bs-ram 2609 eca4 00 2610 eca5 2611 eca5 2612 eca5 ===> prüfbyte rom $eood-$ffff <=== 2613 eca5 2614 eca5 65 cksume.byte $65 2615 eca6 2616 eca6 2617 eca6 = $5a 2618 edoo 2619 edoo 2620 edoo ===> anzahl zeilen bs=l, dann pla, pla <=== 2621 edoo 2622 edoo a6 dd bszei 1 ldx scbot unterste zeile bildschirm (0-251 2623 ed02 e4 dc cpx sctop oberste zeile bildschirm (0-251 2624 ed04 do 02 bne bszeib 2625 ed06 68 pla 2626 ed07 68 pla 2627 ed08 2c 9b 03 bszeib bit scrdis scroll disable flag 2628 edob 60 rts 2629 edoc 2630 edoc.end 2631 edoc.lib monitor

610/710 os-monitor hard+soft ass/reass.... seite 0058 zeile adr. obj.-code source-code 2633 edoc 2634 edoc = $H 2635 eeoo 2636 eeoo ===> monitor-einsprung evect' <=== 2637 eeoo 2638 eeoo 20 fb f9 monon jsr ioinit i/o register init. 2639 ee03 20 a2 fb jsr restor standard-vektoren für jsr und interrupts einrichten 2640 ee06 20 04 eo jsr jcint 2641 ee09 2642 ee09 2643 ee09 ===> monitor-kaltstart (basic aus) <=== 2644 ee09 2645 ee09 20 cc ff monoff jsr kclrch ein-iausgabekanal schliessen 2646 eeoc a9 5a lda l$5a 2641 eeoe a2 00 ldx 1$00 2648 eeio ao ee ldy l$ee 2649 eel2 20 ca fb jsr vreset 2650 eel5 58 cli 2651 eel6 2652 eel6 2653 eel6 ===> monitor-einsprung sys 60950' call <=== 2654 eel6 2655 eel6 a9 co time lda #$co 2656 eeib Bd 61 03 sta msgflg message flag 2657 eelb a9 40 lda 1$40 2658 eeld 85 bd sta tmpc ablage letzter monitor-befehl 2659 ee lf do 10 bne b3 2660 ee21 2661 ee21 2662 ee21 ===> monitor-einsprung 'break-vektor' <=== 2663 ee21 2664 ee21 20 cc ff timb jsr kclrch ein-/ausgabekanal schliessen 2665 ee24 a9 53 lda 1$53 2666 ee26 85 bd sta tmpc ablage 4etzter monitor-befehl 266 7 ee28 db cld 2668 ee29 a2 05 ldx 1$05 2669 ee2b 68 bl pla 2670 ee2c 95 ae sta pch,x addrh programmzähler pc 26 71 ee2e ca dex 2672 ee2f 10 fa bpl bl 2673 ee31 a5 01 b3 lda i6509 6509 indirection register 2614 ee33 85 b5 sta xi6509 alte indirection bank 2675 ee35 ad 00 03 lda cinv addrl irq vector 2676 ee38 85 bb sta invl addrl user interrupt-vektor 2677 ee3a ad 0 I 03 lda cinv l addrh irq vector 2678 ee3d 85 b7 sta invh addrh user interrupt-vektor 2619 ee3f ba tsx 2680 ee40 86 b4 stx sp stack-pointer sp 2681 ee42 58 cli 2682 ee43 a9 OB lda #$08 2683 ee45 85 bf sta ddisk lfd. disk-primäradr. für monitor 2684 eeh a4 bd ldy tmpc ablage letzter monitor-befehl 2685 ee49 20 lc f2 jsr spmsg test errorflag, ausgabe systemmeldung 2686 ee4c a9 52 lda 1$52 2687 ee4e do 27 bne so monitor-befehl lesen Ieinsprung von usrcmdl

610/710 os-monitor hard+soft ass/reass..... seite 0059 zeile adr. obj.-code source-code 2688 ee50 2689 ee50 2690 ee50 ===> mon-error, ausgabe.?. er <=== 2691 ee50 2692 ee50 20 22 ef erropr jsr outqst ausgabe ascii "fragezeichen' 2693 ee53 68 pla 2694 ee54 68 pla 2695 ee55 a9 co lda ll$co 2696 ee57 Bd 61 03 sta msgflg message flag 2697 ee5a a9 00 lda 11$00 2698 ee5c 85 90 sta fnadr addrl akt. filename 2699 ee5e a9 02 lda 11$02 2700 ee60 85 91 sta fnadr+l addrh akt. filename 2701 ee62 a9 Of lda ll$0f 2702 ee64 85 92 sta fnadr+z bank akt. filename 2703 ee66 20 27 ef jsr crlf ausgabe mon-prompter er 2704 ee69 2705 ee69 2706 ee69 ===> sprung monitor-erweiterung <=== 2 70 7 ee69 2708 ee69 20 cf ff stl jsr kbasin eingabe 1 char vom aktiven kanal in ac lchn-vectorl 2709 ee6c c9 Ze cmp ll$2e 2710 ee6e fo f9 beq stl sprung monitor-erweiterung 2 711 ee70 c9 20 cmp t$20 2712 ee72 fo f5 beq stl sprung monitor-erweiterung 2 713 eeh 6c le 03 jmp lusrcmd) addrl monitor erweiterung-vector 2714 ee77 2715 ee 77 2716 ee77 ===> monitor-befehl lesen Ieinsprung von usrcmd) <=== 2717 ee 77 2718 ee77 al 00 so ldx 11$00 2719 ee79 86 9d stx fnlen länge akt. filename 2720 ee7b ab tay 2721 ee7c a9 ee lda ll$ee 2722 ee7e 48 pha 2723 ee7f a9 54 lda 1$54 2724 eebi 48 pha 2725 ee82 98 tya 2726 ee83 2 72 7 ee83 2728 ee83 ===> mon-befehl mit tabelle vergleichen <=== 2729 ee83 2730 ee83 dd d5 ee s 1 cmp cmds,x tabeile monitor-befehle/adressen 2731 ee86 do 10 bne sz nächster mon-befehl 2732 ee88 Bd 66 03 sta savx kernalvariable temporär 2733 ee8b bd d6 ee lda cmds +I, x 2734 ee8e 85 b9 sta tmpl addrl monitor zwei-byte zeiger 2735 ee90 bd d7 ee lda cmds.,., + 1, x 2736 ee93 85 ba sta tmpl+l addrh monitor zwei-byte zeiger 2 73 7 ee95 6c b9 00 jmp ltmpl J addrl monitor zwei-byte zeiger 2738 ee98 2739 ee98 2740 ee98 ===> nächster mon-befehl <=== 2 741 ee98 2HZ ee98 e8 sz inx 270 ee99 e8 inx 27H ee9a e8 inx

610/710 os-monitor hard+soft ass/reass.... seite 0060 zeile adr. obj.-code source-code 2745 ee9b 2746 ee9d 2747 ee9f 2748 eeal 2749 eea I eo 24 90 e4 a2 00 cpx 11$24 bcc sl ldx 11$00 2750 eeal ===> eingabe name mon-disk-befehl <=== 2 751 eea I 2752 eea I c9 Od s3 cmp ll$0d 2753 eea3 fo Od beq s4 2754 eea5 c9 20 cmp 11$20 2755 eea7 fo 09 beq s4 2756 eea9 9d 00 02 sta buf,x 2757 eeac 20 cf ff jsr kbasin 2758 eeaf 2759 eebo 2760 eeb2 2 761 eeb2 eb do ef 85 9d a9 40 Bd 61 03 a5 bf 85 9f a9 Of 85 01 a2 ff ao ff 20 d5 ff bo 05 a5 bd Sc 99 oo 60 s6 inx bne s3 mon-befehl mit tabelle vergleichen kein mon-befehl, befehl von disk kein mon-befehl, befehl von disk basic input-puffer -$2ff eingabe I char vom aktiven kanal in ac lchn-vectorl eingabe name mon-disk-befehl 2762 eeb2 ===> kein mon-befehl, befehl von disk <=== 2763 eeb2 2764 eeb2 85 bd s4 sta tmpc ablage letzter monitor-befehl 2765 eeb4 Ba txa 2766 eeb5 fo ld beq s6 sta fnlen länge akt. filename lda 11$40 sta msgflg message flag lda ddisk lfd. disk-primäradr. für monitor s ta fa akt. primiradresse lgeräte-nummerl lda ll$0f sta i6509 6509 indirection register ldx ll$ff ldy l$ff jsr kload einlesen vom log. file bcs s6 lda tmpc ablage letzter monitor-befehl jmp Istall addrl anfang akt. load/store 2 76 7 2768 2769 2770 2771 2772 2 7 73 2774 2 775 2776 2777 2778 2 7 79 2780 2 781 2782 2783 2784 2785 2786 278 7 2788 2789 2790 2 791 2792 2793 2794 2795 Z796 2 79 7 2798 2799 eeb7 eeb9 eebb eebe eeco eec2 eec4 eec6 eecb eeca eecd eecf eedl eed4 eed4 eed4 eed5 eed5 eed5 eed5 eed5 eed6 eedb eed9 eedb eedc eede eedf eeel eeez eee4 eee5 eee 7 rts ===> tabelle monitor-befehle/adressen <=== 3a f5 ef 3b cb ef 52 4c ef 4d Bf ef 47 10 fo 4c 4a fo 53 cmds.byte. word altm.byte.word altr.byte r.word dsplyr.byte 'm'.word dsplym.byte g.word go.byte '1.ward ld.byte s mon-befehl ram mon-befehl mon-befehl (16byt} mon-befehl r m registerzeile ins registerausgabe druckt memoryzeile g goto xxxxxx mon-befehl '1 =load, s =save

610/710 os-monitor hard+soft ass/reass.... seite 0061 zeile adr. obj.-code source-code 2800 eee8 2801 eeea 2802 eeeb 2803 eeed 2804 eeee 2805 eefo 2806 eefl 4a fo 56 e I ef 40 65 fl 5a 72 ff 280 7 eef3 58 2808 eef4 f9 ee 2809 eef6 55 2810 eef7 eb ef 2811 eef9 2812 eef9.ward ld.byte v.ward view.byte.ward disk.byte z.ward kipcgo.byte x.ward xeit.byte u.ward unitd 2813 eef9 ===> mon-befehl x =ende <=== 2814 eef9 2815 eef9 68 xeit pla 2816 eefa 68 pla 2817 eefb 78 sei 2818 eefc 6c f8 03 jmp levectl 2819 eeff 2820 eeff 2821 eeff ===> adr. von tmpl nach pcl <=== 2822 eeff a5 b9 85 af a5 ba 85 ae 60 putp lda tmp I sta pcl lda tmp1+1 sta pch rts 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 eeff efoi ef03 ef05 ef07 ef08 ef08 efob efob efob efoa efoc efoe efio efl2 efl4 efl6 efl7 efl7 efl7 efl7 efl7 efl8 eflb eflc eflf eflf eflf eflf eflf ef21 ef22 ef22 ef22 ===> sr, ac setzen, bank= $f <=== a9 bo 85 b9 a9 oo 85 ba a9 Of 85 01 a9 05 60 setr lda 11$b0 sta tmpl lda 11$00 sta tmpl+l lda II$Of sta i6509 lda 11$05 rts mon-befehl "l "=load, s =save mon-befehl v = bankswitch mon-befehl = disk-kurzbefehle mon-befehl z umsch. auf coprozessor mon-befehl ===> ausgabe 'er' ac + space <=== 48 20 27 ef 68 20 d2 ff altrit pha jsr crlf pla jsr kbsout ===> ausgabe ascii space <=== a9 20 2c space lda #$20.byte $2c ===> ausgabe ascii 'Fragezeichen <=== x"=ende mon-befehl u = ändern diskadresse addrl warmstart-vector addrl monitor zwei-byte zeiger addrl programmzähler pc addrh monitor zwei-byte zeiger addrh programmzihler pc addrl monitor zwei-byte zeiger addrh monitor zwei-byte zeiger 6509 indirection register ausgabe mon-prompter er' ausgabe 1 char auf akt. kanal

610/710 os-monitor hard+soft ass/reass.... seite 0062 zeile adr. obj.-code source-code 2857 ef22 2858 ef22 a9 3f 2859 2860 2861 ef24 ef27 ef27 4c d2 ff outqst lda #$3f jmp kbsout 2862 ef27 ===> ausgabe mon-prompter er 2863 ef27 2864 2865 2866 2867 2868 ef27 ef29 ef2c ef2e ef31 a9 Od 20 d2 ff a9 2e 4c d2 ff crlf lda #$0d jsr kbsout lda #$2e jmp kbsout ausgabe 1 char auf akt. kanal <=== ausgabe ausgabe 2869 ef31 2870 ef31 ===> kopf für cpu-register ausgabe <=== 2871 ef31 2872 ef31 Od regle 2873 ef32 20 20 20 2873 ef35 50 43 20 2873 ef38 20 49 52 2873 ef3b 51 20 20 2873 ef3e 53 52 20 2873 eh! 41 43 20 28 73 efh 58 52 20 2873 efh 59 52 20 28 73 eha 53 50 2874 ehe 2875 ehe.byte $Od.byte pc irq sr ac xr yr sp 2876 ef4c ===> mon-befehl r = registerausgabe <=== 2877 ehe 2878 ef4c a2 00 dsplyr ldx #$00 2879 ehe 2880 ehe 2881 ef4e ===> cpu-register ab xr ausgeben <=== char auf akt. kanal char auf akt. kanal 2882 ehe 2883 2884 2885 2886 2887 2888 ehe ef51 ef54 ef55 ef57 ef59 bd 31 ef d2 20 d2 ff eb eo lb do f5 a9 3b lda regk.x jsr kbsout inx cpx #$1b bne d2 lda #$3b kopf für cpu-register ausgabe ausgabe 1 char auf akt. kanal cpu-register ab xr ausgeben 2889 ef5b 20 17 ef jsr al tri t ausgabe er + ac + space 2890 2891 2892 2893 2894 2895 2896 2897 ef5e ef60 ef62 ef65 ef68 ef6a ef6c ef6f a6 ae a4 af 20 f6 fo 20 lf ef a6 b7 a4 bb 20 f6 fo 20 08 ef ldx pch ldy pcl jsr wroa jsr space ldx invh ldy invl jsr wroa jsr setr addrh programmzählet pc addrl programmzähler pc ausgabe xr/yr als vier ascii-bytes ausgabe ascii space addrh user interrupt-vektor addrl user interrupt-vektor ausgabe xr/yr als vier ascii-bytes sr. ac setzen, bank= $f 2898 ef72 2899 ef72 2900 ef72 ===> druckt spc, hexdump ab $69, länge in $bd <=== 2901 ef72 2902 2903 ef72 ef74 85 bd ao 00 dm sta tmpc ldy #$00 ablage letzter monitor-befehl sty fnlen länge akt. filename 2904 ef76 84 9d 2905 ef78 2906 ef78

610/710 os-monitor hard+soft ass!reass... seite 0063 zeile adr. obj.-code source-code 2907 ef78 ===> druckt spc, hexdump ab $69 + yr <=== 2908 ef78 2909 ef78 20 lf ef dml jsr space 2910 ef7b b I b9 lda ltmpl},y 2911 efld 20 fb (0 jsr wrob 2912 efbo e6 b9 inc tmpl 2913 ef82 do 06 bne dm2 2914 efh e6 ba inc tmpl+l 2915 ef86 do 02 bne dm2 2916 efbb c6 9d dec fnlen 2917 efba c6 bd dm2 dec tmpc 2918 efbc do ea bne dml 2919 efbe 60 rts 2920 efbf 2921 efbf ausgabe ascii space addrl monitor zwei-byte zeiger I ausgabe ac als ascii-doppelbyte addrl monitor zwei-byte zeiger I addrh monitor zwei-byte zeiger länge akt. filename ablage letzter monitor-befehl druckt spc, hexdump ab $69 + yr 2922 efbf ===> mon-befehl m =druckt memoryzeile l16byt) <=== 2923 efbf 2924 efbf 20 40 fo dsplym jsr rdoae 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 29SI 29S2 ef92 ef95 ef98 ef9a ef9c ef9e efao efa2 efas efab efaa efac efaf efbl efb3 efb6 efbb 20 13 fl 20 23 fl 90 OB as bb BS b9 as bc 85 ba 20 13 fl 20 e I ff (0 20 a9 Ja 20 17 ef a6 ba a4 b9 20 (6 (0 a9 10 20 72 ef efbb as 9d efbd do Ob efbf 38 efeo as bb efe2 es b9 efc4 as bc efc6 es ba efcb bo db efca 60 efcb efcb dspl23 dspl begsl jsr t2t2 jsr rdoa bcc dspl23 lda tmp2 sta tmpl lda tmp2+1 sta tmpl+ I jsr t2t2 jsr kstop beq begsl lda l$3a jsr altri t ldx tmpl+l ldy tmp I jsr wroa lda 1$10 jsr dm lda fnlen bne begsl sec lda tmp2 sbc tmpl lda tmp2+1 sbc tmpl+l bcs dspl rts 4 zeichen nach hex in tmpl, bcs=error tmpl mit tmp2 vertauschen 4 zeichen nach hex in tmpl 29S3 efcb ===> mon-befehl ';' = registerzeile ins ram <=== 2954 efeb 29SS efcb 20 40 (0 altr jsr rdoae 29S6 efce 20 ff ee 29S7 efdl 20 40 fo 29S8 efd4 a5 b9 29S9 efd6 BS bb 2960 efdb a5 ba jsr putp jsr rdoae lda tmp I sta invl lda tmpl+l addrl monitor zwei-byte zeiger 2 addrl monitor zwei-byte zeiger addrh monitor zwei-byte zeiger 2 addrh monitor zwei-byte zeiger tmpl mit tmp2 vertauschen stop-taste lesen ausgabe er + '. ', ac + space addrh monitor zwei-byte zeiger addrl monitor zwei-byte zeiger ausgabe xr/yr als vier ascii-bytes druckt spe, hexdump ab $69, länge in $bd länge akt. Filename addrl monitor zwei-byte zeiger 2 addrl monitor zwei-byte zeiger I addrh monitor zwei-byte zeiger 2 addrh monitor zwei-byte zeiger I zeichen nach hex in tmpl, bcs=error adr. von tmpl nach pcl 4 zeichen nach hex in tmpl, bcs=error addrl monitor zwei-byte zeiger addrl user interrupt-vektor addrh monitor zwei-byte zeiger

610/710 os-monitor hard+soft ass/reass.... seite 0064 zeile adr. obj.-code source-code 2961 efda 85 b7 2962 efdc 20 08 ef 296J efdf do 19 2964 efe I 2965 efe I 2966 efe I 296 7 efe I 2968 efel 20 Ja fo view 2969 efe4 2970 efe6 2971 efe8 2972 297J 2914 2975 29 76 efea efeb efeb efeb efeb sta invh jsr setr bne a4 ===> mon-befehl 'v' = bankswitch <=== c9 10 bo 5f 85 01 60 rts jsr rdobe cmp 1$10 bcs errl sta i6509 ===> mon-befehl u = jndern diskadresse <=== 2977 efeb 20 Ja fo unitd jsr rdobe addrh user interrupt-vektor sr, ac setzen, bank= $f 2 zeichen (lbytl nach hex in ac, bcs=error mon-error, ausgabe '? ', er', 6509 indirection register 2 zeichen (lbytl nach hex in ac, bcs=error 2978 efee c9 20 cmp 1$20 29 79 effo bo 55 bcs errl 2980 eff2 85 bf sta ddisk 2981 efh 60 rts 2982 eff5 298J eff5 2984 eff5 ===> mon-befehl ': = memoryzeileins ram (16 byt} <=== 2985 eff5 2986 eff5 20 40 fo altm 2987 eff8 2988 effa 2989 effc 2990 efff 2991 fooi 2992 fooj 299J f005 2994 f007 2995 f009 2996 foob 2997 food 2998 foof 2999 foio JOOO foio a9 10 85 bd 20 JO fl bo Oe ao oo 91 b9 e6 b9 do 02 e6 ba c6 bd do ed 60 a4 a5 a6 a9 jsr rdoae lda 1$10 sta tmpc jsr rdob bcs a9 ldy 1$00 s t a ( tmp I I, y inc tmpl bne a6 inc tmpl+l dec tmpc bne a5 rts JOOI foio ===> mon-befehl 'g' goto XXXXXX < J002 foio JOOJ foio 20 5f fl go jsr rdoc eingabe J004 foij fo 06 beq gl J005 f015 20 40 fo jsr rdoae J006 fo 18 J007 foib J008 foid J009 foie JOIO foif 3011 f021 J012 f024 JOIJ f026 JO 14 f029 20 ff ee a6 b4 9a 78 a5 b7 Bd 01 03 a5 bb Bd 00 03 a5 b5 gl jsr putp ldx sp txs sei lda invh sta cinv+1 lda invl sta cinv lda xi6509 mon-error, ausgabe '?','er',.' lfd. disk-primjradr. für monitor 4 zeichen nach hex in tmpl, bcs=error ablage letzter monitor-befehl 2 zeichen (lbytl nach hex in ac addrl monitor zwei-byte zeiger addrl monitor zwei-byte zeiger addrh monitor zwei-byte zeiger ablage letzter monitor-befehl char.in ac, test er 4 zeichennachhex in tmpl, bcs=error adr. von tmpl nach pcl stack-pointer sp addrh user interrupt-vektor addrh irq vector addrl user interrupt-vektor addrl irq vector alte indirection bank

610/710 os-monitor hard+soft ass/reass.... seite 0065 zeile adr. obj.-code source-code 3015 f02b 85 01 3016 f02d a2 00 3017 f02f b5 ae 3018 f031 48 3019 f032 e8 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 f033 f035 f037 f03a f03a f03a f03a f03a f03d f03f eo 06 do f8 4c a5 fc g2 sta i6509 ldx 1$00 lda pch,x pha inx cpx 1$06 bne g2 jmp prend 6509 indirection register addrh programmzählet pc irq-ende, stacknach yr,xr,ac ===> 2 zeichen {lbytl nach hex in ac, bcs=error <=== 20 30 fl bo 06 rdobe jsr rdob bcs errlpl 2 zeichen {lbyt} nach hex in ac 60 rdoxit rts 3030 f040 3031 3032 f040 f040 ===> 4 zeichennachhex in tmpl, bcs=error <=== 3033 f040 3034 f040 20 23 fl rdoae jsr rdoa 4 zeichen nach hex in tmpl 3035 foo 3036 f045 3037 f046 3038 foh 3039 f04a 3040 3041 3042 300 30H 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 f04a f04a f04a f04a f04c f04e foh f051 f053 f055 f057 f059 f05b f05d f060 f062 f064 f066 f068 f06a f06d f06f f071 f073 f075 f077 f078 f07a fo 7c f07e f081 f083 f085 90 fa 68 68 4c 50 ee bcc rdoxit errlpl pla pla errl jmp erropr mon-error, ausgabe "?" er, ===> mon-befehl '1 '=load, s =save <=== ao 01 84 9f 88 a9 ff 85 b9 85 ba a5 01 85 be a9 Of 85 01 20 5f f1 fo lc c9 20 fo f7 c9 22 do dd 20 5f f1 fo Of c9 22 fo ld 91 90 e6 9d c8 co 10 fo cb do ec ad 66 03 c9 4e do e3 a5 be ld 11 12 13 15 ldy 1$01 sty fa dey lda l$ff sta tmp1 sta tmpl+l lda i6509 sta t6509 lda ISOf sta i6509 jsr rdoc beq 15 cmp #$20 beq 11 cmp #$22 bne errl jsr rdoe beq 15 cmp #$22 beq 18 sta lfnadr},y inc fnlen iny cpy 1$10 beq errl bne 13 lda savx cmp #$4c bne 12 lda t6509 akt. primäradresse {geräte-nummerl addrl monitor zwei-byte zeiger addrh monitor zwei-byte zeiger 6509 indirection register laufende 6509 indirection bank 6509 indirection register eingabe 1 char. in ac, tes t er mon-error, ausgabe '?","er",. eingabe I char.in ac, test er addrl akt. filename länge akt. Filename mon-error, ausgabe?, er, kernalvariable temporär laufende 6509 indirection bank

610/710 os-monitor hard+soft ass/reass.... seite 0066 zeile adr. obj.-code source-code 3073 f087 29 Of 3014 f089 a6 b9 3015 f08b a4 ba 3016 f08d 4c d5 ff 3077 f090 30 78 f090 3079 f090 20 5f fl 18 3080 f093 fo e9 3081 f095 c9 2c 3082 f097 do cf 19 3083 f099 20 3a fo 3084 f09c 85 9f 3085 f09e 20 5f fl 3086 foal fo db 3081 f0a3 c9 2c 3088 f0a5 do fo 112 3089 f0a7 20 3a fo 3090 3091 3092 3093 3094 3095 3096 3091 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 foaa foac foae fobo f0b2 f0b5 f0b7 f0b9 fobb fobd foco f0c2 f0c4 f0c6 f0c9 focb focd focf f0d2 f0d4 f0d6 f0d8 foda fodd fodf foe I f0e3 f0e5 f0e8 foea foec foee c9 10 bo 45 85 be 85 9b 20 40 fo a5 b9 85 99 a5 ba 85 9a 20 5f fl fo bc c9 2c do 2d 20 Ja fo c9 10 bo 26 85 98 20 40 fo a5 b9 85 96 a5 ba 85 97 20 cf ff 120 c9 20 fo f9 c9 Od do co 114 ad 66 03 c9 53 do f7 a2 99 ao 96 3122 fofo 4c d8 ff 3123 f0f3 3124 f0f3 and tl$0f ldx tmpl ldy tmpl+l jmp kload jsr rdoc beq l5 cmp tt$2c bne 12 jsr rdobe sta fa jsr rdoc beq l5 cmp l$2c bne 19 jsr rdobe cmp 1$10 bcs 115 sta t6509 sta stas jsr rdoae lda tmpl sta stal lda tmpl+l sta stah jsr rdoc beq l5 cmp l$2c bne 115 jsr rdobe cmp 1$10 bcs 115 sta eas jsr rdoae lda tmpl sta eal lda tmp I+ I sta eah jsr kbasin cmp 1$20 beq 120 cmp l$0d bne 112 lda savx cmp 1$53 bne l 14 ldx tl$99 ldy 11$96 jmp ksave addrl monitor zwei-byte zeiger addrh monitor zwei-byte zeiger einlesen vom log. file eingabe I char.in ac, test er 2 zeichen llbytl nach hex in ac, bcs=error akt. primäradresse lgeräte-nummerl eingabe I char.in ac, test er 2 zeichen llbyt) nach hex in ac, bcs=error mon-error, ausgabe '?', 'er', '. ' laufende 6509 indirection bank bank anfang akt. load/store 4 zeichen nach hex in tmpl, bcs=error addrl monitor zwei-byte zeiger addrl anfang akt. load/store addrh monitor zwei-byte zeiger addrh anfang akt. load/store eingabe I char.in ac, test er mon-error, ausgabe '?','er','.' 2 zeichen llbyt) nach hex in ac, bcs=error mon-error, ausgabe '?','er', bank ende akt. load/store 4 zeichen nach hex in tmpl, bcs=error addrl monitor zwei-byte zeiger addrl ende akt. load/store addrh monitor zwei-byte zeiger addrh ende akt. load/store eingabe I char vom aktiven kanal in ac lchn-vectorl kernalvariable temporär abspeichern auf log. file

610/710 os-monitor hard+soft ass/reass.... seite 0067 zeile adr. obj.-code source-code 3125 f0f3 4c 50 ee 115 3126 f0f6 3127 f0f6 jmp erropr mon-error, ausgabe?, er,. 3128 f0f6 ===> ausgabe xr/yr als vier ascii-bytes <=== 3129 f0f6 3130 f0f6 Ba wroa 31}1 f0f7 20 fb fo 3132 fofa 98 3133 fofb 3134 fofb txa jsr wrob tya 3135 fofb ===> ausgabe ac als ascii-doppelbyte <=== 3136 fofb 3137 fofb 48 3138 fofc 4a 3139 fofd 4a 3140 3141 3142 fofe foff fioo 4a 4a 20 0 7 fl 3143 fl03 aa 31H fl04 68 3145 fl05 29 Of 3146 f107 3147 fl07 wrob pha lsr a lsr a lsr a lsr a jsr ascii tax pla and #$0f 3148 fl07 ===> umwandlung I hexbyte nach ascii <=== 3149 fl07 3150 fl07 3151 fl08 3152 fioa 3153 fioc 3154 f10e 3155 f 110 3156 "13 3157 f113 3158 f113 3159 f113 3160 fll3 3161 fll5 3162 fll7 3163 f118 3164 flla 3165 fllc 3166 flld 316 7 fllf 3168 fl20 3169 fl22 3170 fl23 3171 fl23 3172 fl23 3 I 73 fl23 3174 fl23 3175 fl26 3176 fl28 3177 fl2a 3178 flld 18 69 f6 90 02 69 06 69 Ja 4c d2 ff ascii ascl clc adc #$f6 bcc asc1 adc #$06 adc #$3a jmp l<bsout ===> tmpl mit tmp2 vertauschen <=== a2 02 b5 b8 48 b5 ba 95 b8 68 95 ba ca do f3 60 t2t2 ldx #$02 t2t21 lda invl,x pha lda tmpl+l,x sta invl,x pla sta tmpl+l,x dex bne t2t21 rts ===> 4 zeichen nach hex in tmpl <=== 20 30 fl bo 0 7 85 ba 20 30 fl 85 IJ9 rdoa 3179 fl2f 60 rdoa2 rts 3180 3181 3182 jsr rdob bcs rdoa2 sta tmpl+l jsr rdob sta tmpl fl30 fl30 fl30 ===> 2 zeichen llt:jytl nach hex in ac <=== ausgabe ac als ascii-doppelbyte umwandlung I hexbyte nach ascii ausgabe I char auf al<t. l<anal addrl user interrupt-vel<tor addrh monitor zwei-byte zeiger addrl user interrupt-vel<tor addrh monitor zwei-byte zeiger 2 zeichen llbytl nach hex in ac addrh monitor zwei-byte zeiger I 2 zeichen (lbytl nach hex in ac addrl monitor zwei-byte zeiger 1

610/710 os-monitor hard+soft ass/reass..... seite 0068 zeile adr. obj.-code source-code 3183 fl30 3184 fl30 3185 fl32 3186 fl35 3187 fl38 3188 fl3a 3189 fl3c a9 00 8d 00 01 20 5f fl fo 19 c9 20 fo f2 3190 fl3e 20 54 fl 3191 fhi Oa 3192 fl42 Oa 3193 fl43 Oa 3194 fih Oa 3195 fl45 8d 00 01 3196 fl48 20 5f fl 3197 fl4b fo 06 3198 fl4d 20 54 fl 3199 fl50 Od 00 01 3200 fl53 60 rdob4 rdob lda #$00 sta stack jsr rdoc beq rdob4 cmp #$20 beq rdob jsr hexit asl a asl a asl a asl a sta stack jsr rdoc beq rdob4 jsr hexit ora stack rts 3201 fl54 3202 fl54 3203 fl54 ===> ac nach hex umwandeln <=== 3204 fl54 3205 fl54 c9 3a 3206 fl56 08 3207 fl57 29 Of 3208 fl59 28 3209 fl5a 90 02 3210 fl5c 69 08 3211 fl5e 60 3212 fl5f 3213 fl5f hexi t hex09 cmp #$3a php and #$0f plp bcc hex09 adc 1$08 rts 3214 fl5f ===> eingabe I char.in ac, test er <=== 3215 fl5f 3216 fl5f 20 cf ff rdoc 3217 f162 3218 fl64 3219 f165 3220 fl65 322 I 3222 3223 3224 3225 3226 3227 3228 fl65 fl65 fl65 fl6 7 fl69 fl6b fl6d fl6f c9 Od 60 3229 3230 3231 3232 3233 3234 3235 3236 323 7 f172 f173 fl76 fl78 fl7b fl 7d f 17e fl80 f183 fo ld 3238 fl84 bo 34 ===> mon-befehl a9 00 85 9c 85 9d a6 bf ao Of 20 43 fb 18 20 co ff bo 42 20 5f fl 48 az oo 20 c9 ff 68 disk jsr kbasin cmp l$0d rts disk-kurzbefehle <=== lda 1$00 sta status sta fnlen ldx ddisk ldy l$0f jsr setlfs clc jsr kopen bcs disk30 jsr rdoc beq disk20 pha ldx 1$00, jsr kckout pla bcs disk30 6509 cpu-stack eingabe I char.in ac, test er 2 zeichen llbyt) nach hex in ac ac nach hex umwandeln 6509 cpu-stack eingabe I char.in ac, test er ac nach hex umwandeln 6509 cpu-stack eingabe 1 char vom aktiven kanal in ac (chn-vectorj i/o Operation status länge akt, Filename lfd. disk-primäradr. für monitor log., geräte- und sekundäradr. aktualisieren log. file Öffnen/befehl ausgeben eingabe I char.in ac, test er ausgabekanal öffnen

610/710 os-monitor hard+soft ass/reass.... seite 0069 zeile adr. obj. -code source-code 3239 f1b6 90 03 bcc disk15 3240 fibb 20 cf ff diskio jsr kbasin eingabe 1 char vom aktiven kanal in ac (chn-vectorj 3241 fibb c9 Od disk15 cmp #$0d 3242 fibd OB php 3243 fibe 20 d2 ff jsr kbsout ausgabe 1 char auf akt. kanal 32H f191 a5 9c lda status i/o operation status 3245 f193 do 21 bne disk2b 3246 f195 2B plp 3247 f196 do fo bne diskio 324B f19b fo 20 beq disk30 3249 f19a 20 27 ef disk20 jsr crlf ausgabe mon-prompter er 3250 f19d a2 00 ldx #$00 3251 f19f 20 c6 ff jsr kchkin eingabekanal öffnen 3252 fla2 bo 16 bcs disk30 3253 f Ia 4 20 5f fl disk25 jsr rdoc eingabe char.in ac, test er 3254 fla7 OB php 3255 flab 20 d2 ff jsr kbsout ausgabe char auf akt. I< anal 3256 flab a5 9c lda status i/o operation s ta tus 3257 flad 29 bf and #$bf 325B flaf do 05 bne disk2b 3259 flb 1 2B plp 3260 flb2 do fo bne disk25 3261 flb4 fo 04 beq disk30 3262 flb6 6B disk2b pla 3263 flb7 20 45 f9 jsr error5 ausgabe "ilo error: 5' 3264 flba 20 cc ff disk30 jsr kclrch ein-/ausgabekanal schliessen 3265 flbd a9 00 lda #$00 3266 flbf IB clc 3267 flco 4c c3 ff jmp kclose logisches file schliessen 326B flc3 3269 flc3.end 3270 flc3.lib kernall

610/710 os-kernall hard+soft ass/reass... seite 0070 zeile adr. obj.-code source-code 3272 flc3 3273 flc3 ===> tabeile der betriebssystem-meldungen <=== 3214 flc3 3275 flc3 Od msl.byte $0d 3216 flc4 49 2f H.byte "i/o error $a3, $0d 3216 flc7 20 H 52 3216 flca 52 H 52 3276 flcd 20 3216 flce a3 3216 flcf Od 3211 fldo 53 45 3211 fld3 52 0 " 48 3211 fld6 49 4e H 3271 fld9 ao 3278 flda H H 52.byte 'for', $a0, $0d 3218 fldd ao 3218 flde Od " 3279 fldf 4c H 3219 fle2 H 49 4e 3219 fle5 c7 3219 fle6 Od 3280 fle7 53.byte searching, $a0.byte 'loadin, $c1, $0d " 56.byte sav~ng 3280 flea 49 4e H Sao, $0d 3280 fled ao 3280 flee Od 3281 flef 56 45 52.byte verifyin $c7, $0d 3281 f lf2 49 46 59 3281 flf5 49 4e 3281 flf7 c7 3281 flf8 Od 3282 flf9 H H 55.byte found, Sao, $0d 3282 flfc 4e H 3282 flfe ao 3282 flff Od 3283 f200 H 4b.byte 'ok, $8d, $Od 3283 f202 8d 3283 f203 Od 3284 f204 2a 2a 20.byte monitor 1.0... $8d, 3284 f201 4d H 4e 3284 f20a 49 54 H 3284 f20d 52 20 31 3284 f210 2e 30 20 3284 f213 2a 2a 3284 f215 8d 3284 f216 Od 3285 f217 H 52 H.byte "brea Scb 3285 f21a " 3285 f21b cb 3286 f21c 3287 f21c 3288 f21c ===> test errorflag, ausgabe systemmeldung <=== 3289 f21c 3290 f21c 2c 61 03 spmsg bit msgflg message flag 3291 f21f 10 Od bpl msgio JZ9Z fzz! 3293 f221 3294 f221 ===> ausgabe systemmeldung, offset=yr <=== 3295 f221 $Od

610/710 os-kernall hard+soft ass/reass... seite 0071 zeile adr. obj.-code source-code 3296 f221 b9 c3 fl msg 329 7 f224 08 3298 f225 29 7f 3299 f227 20 d2 ff 3300 f22a c8 3301 f22b 28 3302 f22c 10 f3 3303 f22e 18 msgio 3304 f22f 60 3305 f230 3306 f230 3307 f230 3308 f230 3309 f230 09 40 3310 f232 do 02 3311 f234 3312 f2h lda ms I, y php and l$7f jsr kbsout iny plp bpl msg clc rts ===> talk auf iec-bus ausgeben <=== ntalk ora 11$40 bne listl 3313 f234 ===> listen auf iec-bus ausgeben <=== 33" f234 3315 f234 3316 f236 3317 f237 3318 f239 3319 f23c 3320 f23e 3321 f241 3322 f2h 3323 f246 3324 f249 3325 f24b 3326 f24d 3327 f250 3328 f252 3329 f255 3330 f25 7 3331 f25a 3332 f25c 3333 f25e 3334 f260 3335 f263 3336 f265 3337 f268 3338 f26b 09 20 48 a9 3f Bd 03 de a9 ff 8d 00 dc 8d 02 dc a9 fa Bd 00 de a5 aa 10 lb ad 00 de 29 df 8d 00 de a5 ab 20 b9 f2 a5 aa 29 7f 85 aa ad 00 de 09 20 8d 00 de ad 00 de 29 f7 3339 f26d 8d 00 de 3340 f270 68 3341 f271 4c b9 f2 3342 f274 3343 f2 74 3344 3345 3346 3347 3348 3349 3350 f274 f2 74 f274 f2 7 7 f27a f2 7c f27f 3351 f280 3352 f280 nlistn ora 11$20 listl pha lda 1$3f sta tril ddpa lda 1$ff sta cia+pra sta cia+ddra lda l$fa sta tril+pa lda c3po bpl list2 lda tril pa and l$df sta tri l pa lda bsour jsr tbyte lda c3po and I$ 7f sta c3po lda tril+pa ora 11$20 sta tri l pa list2 lda tril pa and 11$f7 sta tril pa pla jmp tbyte ===> sekundäradr. nach listen ausgeben <=== 20 b9 f2 ad 00 de 09 08 Bd 00 de 60 nsecnd jsr tbyte scatn lda tril pa ora #$08 sta tril pa rts tabelle der betriebssystem-meldungen ausgabe I char auf akt. kanal ausgabe systemmeldung, offset=yr 6525 triport 1: data direct.reg. a 6526 cia: periph. data reg.a (pral 6526 cia: data direct.reg.a lddral 6525 triport I: port reg. a ieee puffer flag 6525 triport 1: port reg. a 6525 triport 1: port reg. a ieee zeichen puffer ac auf iec-bus lohne eof-flag} ieee puffer flag ieee puffer flag 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: port reg. a ac auf iec-bus lohne eof-flagl ac auf iec-bus lohne eof-flag} 6525 triport 1: port reg. a 6525 triport 1: port reg. a 3353 f280 ===> akt. sekundäradr. auf iec-bus ausgeben <===

610/710 os-kernall hard+soft ass/reass...... seite 0072 zeiie adr. obj.-code source-code 3354 f280 3355 f280 3356 f283 3357 f285 3358 f288 3359 f28b 3360 f28d 3361 f290 3362 f292 3363 f295 3364 f297 3365 f29 7 20 b9 f2 a9 39 2d 00 de 8d 00 de a9 c7 8d 03 de a9 oo 8d 02 dc fo eo ntksa jsr tbyte tka tn lda 1$39 and tril+pa setins sta tril+pa I da 1$c 7 sta tril+ddpa lda 1$00 sta cia+ddra beq scatn 3366 f297 ===> ac auf iec-bus!mit eof-fiag) <=== 3367 f297 3368 f297 48 3369 f298 a5 aa 3370 f29a 10 07 3371 f29c 3312 f29e 3373 f2a I 3314 f2a3 3375 f2a5 3376 f2a7 33 77 f2a8 3378 f2aa 3379 f2ab 3380 f2ab a5 ab 20 b9 f2 a5 aa 09 80 85 aa 68 85 ab 60 nciout pha Ida c3po bpl ci I Ida bsour jsr tbyte Ida c3po ci I ora 1$80 sta c3po pla sta bsour rts 3381 f2ab ===> untalk auf iec-bus ausgeben <=== 3382 f2ab 3383 f2ab 3384 f2ad 3385 f2af 3386 f2af a9 5f do 02 nuntlk Ida l$5f bne unisl 3387 f2af ===> unlisten auf iec-bus ausgeben <=== 3388 f2af 3389 f2af 3390 f2bl 3391 f2b4 3392 f2b6 3393 f2b9 3394 f2b9 3395 3396 f2b9 3397 f2b9 3398 f2bb 3399 f2be 3400 f2c I 340 I f2c3 3402 f2c6 3403 f2c9 3404 f2cb 3405 f2cd 3406 f2cf 3407 f2d2 3408 fzd4 a9 3f 20 36 f2 a9 f9 4c 88 f2 nunlsn lda l$3f unlsl jsr Iistl Ida 1$f9 jmp setins f2b9 ===> ac auf iec-bus lohne eof-flag) <=== 49 ff 8d 00 dc ad 00 de 09 12 8d oo de 2c oo de 50 09 10 0 7 a9 80 20 5f fb do 30 ad 00 de 3409 f2d7 10 fb 3410 f2d9 29 ef 3411 f2db 8d 00 de tbyte tby2 eor 1$ff sta cia+pra lda tril+pa ora 1$12 sta tri l+pa bit tril+pa bvc tby2 bpi tby2 lda 1$80 jsr udst bne tby7 lda tri1+pa bpl tby2 and l$ef sta tril+pa ac auf iec-bus (ohne eof-flag) 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: data direct.reg. a 6526 cia: data direct.reg.a lddral ieee puffer fiag ieee zeichen puffer ac auf iec-bus lohne eof-flagl ieee puffer flag ieee puffer flag ieee zeichen puffer 6526 cia: periph. data reg.a (pral 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: port reg. a 'ora' ac in status 6525 triport 1: port reg. a 6525 triport 1: port reg. a

610/710 os-kernall hard+soft ass/reass..... seite 0073 zeile adr. obj.-code source-code 3412 f2de 20 6f f3 tby3 jsr timero 3413 f2el 90 01 3414 3415 3416 3417 3418 3419 3420 342, 3422 3423 3424 3425 3426 3427 f2e3 f2e4 f2e7 f2e9 f2ec f2ee f2f0 f2f3 f2f5 f2f7 f2f9 f2fc f2ff f301 38 2c 00 de 70 13 ad Od dc 29 02 fo H ad 5e 03 30 e9 90 ec a9 01 20 5f fb ad 00 de 09 10 Bd 00 de 3428 f304 a9 ff 3429 f306 Bd oo dc 3430 f309 60 343 I f30a 3432 f30a tby3t tby4 tby6 tby7 bcc tby4 sec bit tril+pa bvs tby6 lda cia+icr and tt$02 beq tby4 lda timout bmi tby3 bcc tby3t lda 1$0 I jsr udst lda tril+pa ora tt$10 sta tril+pa lda tt$ff sta cia+pra rts 3433 f30a ===> byte von iec nach ac <=== 3434 f30a 3435 f30a ad 00 de nrbyte lda tril+pa 3436 f30d 29 b9 and l$b9 3437 f30f 09 BI ora #$8 1 3438 f3" Bd oo de sta tril+pa 3439 f3" 20 6f f3 rbyl jsr timero 3440 f317 90 01 3HI 3HZ 3H3 f319 f31a f31d 29 10 3H4 3H5 3H6 3H 7 3HB 3H9 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 346 7 f31f f321 f324 f326 f328 f32b f32d f32f f331 f334 f337 f339 f33c f33e f33f f33f f33f f342 f3h f3h f349 f34b f34d f350 fo le 38 ad oo de ad Od dc 29 02 fo f2 ad 5e 03 30 e7 90 ea a9 02 20 5f fb ad 00 de 29 3d Bd 00 de a9 Od 60 ad 00 de 29 7f Bd 00 de 29 20 do 05 a9 40 20 5f fb ad 00 dc rby lt rby2 rby4 rby5 bcc rby2 sec lda tril+pa and #$10 beq rby4 lda cia+icr and 1$02 beq rby2 lda timout bmi rbyl bcc rbylt lda #$02 jsr udst lda tril+pa and l$3d sta tril+pa lda #$0d rts lda tril+pa and 11$7f sta tri l+pa and 11$20 bne rby5 lda #$40 jsr udst lda cia+pra timer für time-out auf iec-i/o einschalten 6525 triport 1: port reg. a 6526 cia: irq control reg. licrj ieee timeout enable flag 'ora' ac in status 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6526 cia: periph. data reg.a {praj 6525 triport 1: port reg. a 6525 triport 1: port reg. a timer für time-out auf iec-i/o einschalten 6525 triport 1: port reg. a 6526 cia: irq control reg. licr} ieee timeout enable flag 'ora' ac in status 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: port reg. a 6525 triport 1: port reg. a 'ora' ac in status 6526 cia: periph. data reg.a {pra}

610/710 os-kernall hard+soft ass/reass.... seite 0074 zeile adr. obj.-code source-code 3468 f353 49 ff eor l$ff 3469 f355 48 pha 3470 f356 ad 00 de lda tril+pa 6525 triport 1: port reg. a 3471 f359 09 40 ora 1$40 3472 f35b Bd 00 de sta tril+pa 6525 triport 1: port reg. a 3473 f35e ad 00 de rby7 lda tri 1 +pa 6525 triport 1: port reg. a 3474 f361 29 10 and 1$10 3475 f363 fo f9 beq rby7 3476 f365 ad 00 de lda tril+pa 6525 triport 1: port reg. a 3477 f368 29 bf and l$bf 3478 f36a Bd 00 de sta tril+pa 6525 triport 1: port reg. a 3479 f36d 68 pla 3480 f36e 60 rts 3481 f36f 3482 f36f 3483 f36f ===> timer für time-out auf iec-i/o einschalten <=== 3484 f36f 3485 f36f a9 ff timero lda 1$ff 3486 f371 Bd 07 dc sta cia+tbhi 6526 cia: timer b hi reg. ltb hi} 3487 f374 a9 II lda 1$11 3488 f376 Bd Of dc sta cia +erb 6526 cia: control reg. b I erb} 3489 f379 ad Od dc lda cia+icr 6526 cia: irq control reg. licrl 3490 f37c 18 clc 3491 f37d 60 rts 3492 f37e 3493 f37e 3494 f37e 4c 51 f9 jmp error9 ausgabe "i/o error: 9" 3495 F381 3496 (381 3497 (381 ===> open rs232-schnittstelle <=== 3498 f381 3499 F381 20 2e H opn232 jsr rst232 status rs232-schnittstelle 3500 F384 ao 00 ldy 1$00 3501 F386 c4 9d opn020 cpy Fnlen länge akt. Filename 3502 F388 fo Ob beq opn030 3503 f3ba 20 92 fe jsr fnadry Filename "bank x in ac, offset yr 3504 f38d 99 76 o3 sta m51ctr,y rs232: kopie 6551 control-reg. 3505 f390 c8 iny 3506 f391 co 04 cpy 1$04 3507 F393 do f1 bne opn020 3508 f395 ad 76 03 opn030 lda m51ctr rs232: kopie 6551 control-reg. 3509 f398 Bd 03 dd sta acia+ctr 6551 acia: control-reg. 3510 f39b ad 77 03 lda m51cdr rs232: kopie 6551 command-reg. 3511 f39e 29 f2 and I$F2 3512 f3a0 09 02 ora 1$02 3513 f3a2 Bd 02 dd sta acia+cdr 6551 acia: command-reg. 3514 f3a5 18 clc 3515 f3a6 a5 ao lda SI akt. Sekundäradresse 3516 f3a8 29 02 and 1$02 3517 F3aa FO 15 beq opnoh 3518 f3ac ad 7d 03 lda ridbe rs232: eingabe end zeiger 3519 F3af Bd 7c 03 sta ridbs rs232: eingabe start zeiger 3520 f3b2 a5 ab lda ribuf+2 bank rs232 eingabe-puffer 3521 f3b4 29 fo and l$f0 3522 f3b6 fo 09 beq opn045 3523 f3b8 20 fc f3 jsr req256 3524 f3bb 85 a8 sta ribuf+2 bank rs232 eingabe-puffer 3525 f3bd 86 a6 stx ribuf addrl rs232 eingabe-puffer

610/710 os-kernall hard+soft ass/reass.... seite 0075 zeile adr. obj.-code source-code 3526 f3bf 84 a7 sty ribuf+l addrh rs232 eingabe-puffer 3527 f3c 1 90 03 opn045 bcc opnoso 3528 f3c3 4c 53 f9 jmp errorx fehler ausgabe-routine 3529 f3c6 3530 f3c6 3531 f3c6 60 opn050 rts 3532 f3c7 3533 f3c7 3534 f3c7 ===> umw. ascii-code nach cbm-code <=== 3535 f3c7 3536 f3c7 c9 toasci cmp #$41 3537 f3c9 90 10 bcc toa020 " 3538 f3cb c9 Sb cmp #$5b 3539 f3cd bo 02 bcs toaoio 3540 f3cf 09 20 ora #$20 3541 f3dl c9 cl toaoio cmp #$Cl 3542 f3d3 90 06 bcc toa020 350 f3d5 c9 db cmp #$db JSH f3d7 bo 02 bcs toa020 3545 f3d9 29 7f and #$7f 3546 f3db 60 toa020 rts 3547 f3dc 3548 f3dc 3549 f3dc ===> umw. cbm-code nach ascii-code <=== 3550 f3dc 3551 f3dc c9 41 tocbm cmp #$41 3552 f3de 90 10 bcc toc020 3553 f3e0 c9 Sb cmp #$Sb 3554 f3e2 bo 02 bcs tocoio 3555 f3e4 09 80 ora #$80 3556 f3e6 c9 61 tocoio cmp #$61 3557 f3e8 90 06 bcc toc020 3558 f3ea c9 7b cmp #$7b 3559 f3ec bo 02 bcs toc020 3560 f3ee 29 df and #$df 3561 f3f0 60 toc020 rts 3562 f3fl 3563 f3fl 3564 f3fl ad 02 dd xon232 lda acia+cdr 6551 acia: command-reg. 3565 f3h 09 09 ora #$09 3566 f3f6 29 fb and #$fb 3567 f3f8 Bd 02 dd sta acia.-cdr 6551 acia: command-reg. 3568 f3fb 60 rts 3569 f3fc 3570 f3fc 3571 f3fc a2 00 req256 ldx #$00 3572 f3fe ao 0 I ldy #$0 I 3573 HOO Ba tttop txa 3574 HOl 38 sec 3575 H02 49 ff eor #$ff 3576 H04 6d 55 03 adc hiadr addrl ende des system speichers 3577 H07 aa tax 3578 HOB 98 tya 3579 H09 49 ff eor #$ff 1580 HOb 6d 56 03 adc hiadr+l addrh ende des system speichers 3581 HOe ab tay 3582 HOf ad 57 03 lda hiadr+2 bank ende des system speichers 3583 f412 bo 06 bcs topoio

610/710 os-kernall hard+soft ass/reass..... seite 0076 zeile adr. obj.-code source-code 35B4 35B5 35B6 35B7 35BB f414 f416 HIB f419 H Ia 35B9 H Ia 3590 Hla 3591 Hld 3592 Hlf 3593 f421 3594 H24 3595 f426 3596 f429 3591 f42c 359B f42d 3599 H2e 3600 f42e a9 ff 09 40 3B 60 cc Sc 03 90 f7 do 05 ec Sb 03 90 fo Be 55 03 Be 56 03 IB 60 lda #$ff topbad ora #$40 sec rts topoio cpy memsiz+l bcc topbad bne topxit cpx memsiz bcc topbad topxit stx hiadr sty hiadr+l clc rts 3601 f42e ===> status rs232-schnittstelle <=== 3602 H2e 3603 f42e OB rst232 php 3604 HZf TB sei 3605 f430 ad 01 dd lda acia+srsn 3606 f433 29 60 3607 f435 Bd Ta 03 360B f43b Bd Tb 03 3609 f43b 2B 3610 3611 3612 H3c 60 H3d H3d and #$60 sta rsstat sta dcdsr plp rts addrh ende des benutzer speichers addrl ende des benutzer speichers addrl ende des system speichers addrh ende des system speichers 6551 acia: reset-write und status read-reg. rs232: akt. rs232-status rs232: letzter dcd/dsr wert 3613 f43d ===> eingabe I char vom aktiven kanal in ac (queue-vector) <=== 3614 H3d 3615 3616 3617 3618 3619 H3d H3f fhi fh3 fh5 a5 a 7 do Oe as dl 05 d6 fo 53 ngetin lda dftln bne gnio lda ndx ora kyndx beq gnzo vorgabe input-grätenummer test eingabekanal =2 lrs232) anzahl bytes im tastaturpuffer Zeichenzähler für pgm tastenbefahl 3620 fh7 TB sei 3621 fhb 20 07 eo jsr jlp2 3622 fhb 78 ele 3623 3624 fhc 60 fhd rts 3625 fhd 3626 f44d ===> test eingabekanal =2 (rs232) <=== 362 7 fhd 3628 f44d e9 02 gnio cmp #$02 3629 f44f fo 03 beq gn232 3630 f451 4e cf ff jmp kbasin 3631 HH 3632 H54 3633 H54 3634 H54 3635 H54 3636 H57 3637 H5a 363B H5d 3639 H60 ===> zeiehen von rs232 in ae <=== Be 65 03 Be 66 03 ae 7e 03 ee Td 03 do 16 gn232 sty xsav stx savx ldy ridbs cpy ridbe bne gnl5 zeichen von rs232 in ae eingabe I char vom aktiven kanal in ac (chn-veetor) kernalvariable temporär kernalvariable temporär rs232: eingabe start zeiger rs232: eingabe end zeiger

610/710 os-kernall hard+soft ass!reass... seite 0077 zeile adr. obj.-code source-code 3640 f462 364 I H65 3642 {467 3643 f469 3644 H6c 3645 f46f 3646 f471 3647 f4 74 364B f4 76 3649 f47b 3650 f4 7b 3651 3652 3653 HB2 3654 3655 HB6 3656 3657 365B HBd 3659 3660 f491 3661 ad 02 dd 29 fd 09 01 8d 02 dd ad Ta 03 09 10 8d 7a 03 a9 00 fo lc ad Ta 03 gnl5 29 ef f4 Td 8d Ta 03 HBO a6 01 a5 ab HB4 B5 01 bl a6 HBB B6 01 HBa ee Tc 03 24 ao HBf 10 03 20 dc f3 f494 ac 65 03 f497 ae 66 03 3662 3663 f49a IB 3664 f49b 60 3665 f49c 3666 f49c 3667 366B 3669 3670 3671 3672 3673 36 74 36 75 36 76 3677 3678 36 79 3680 3681 3682 3683 3684 f49c H9c fuc HSe f4a0 Ha2 Ha4 Ha6 HaB Hab Hab Hab Had Haf Hbl f4b3 Hb5 f4bb 3685 Hb9 60 3686 Hba 368 7 Hba 3.6 88 Hba 3689 f4be 3690 Hbe 3691 HeO 3692 f4c3 3693 Hc5 3694 He T 3695 He9 3696 f4ca 369 T Heb lda acia+cdr and l$fd ora #$0 I sta acia+cdr lda rsstat ora 1$10 sta rsstat lda 1$00 beq gnexit lda rsstat and #$ef sta rsstat ldx i6509 lda ribuf 2 sta i6509 lda (ribufj,y stx i6509 inc ridbs bi t sa bpl gnexit jsr tocbm gnexit ldy xsav ldx savx gn20 clc rts 6551 acia: command-reg. 6551 acia: command-reg. rs232: akt. rs232-status rs232: akt. rs232-status rs232: akt. rs232-status rs232: akt. rs232-status 6509 indirection register bank rs232 eingabe-puffer 6509 indirection register addrl rs232 eingabe-puffer 6509 indirection register rs232: eingabe start zeiger akt. Sekundäradresse umw. cbm-code nach ascii-code kernalvariable temporär kernalvariable temporär ===> eingabe I char vom aktiven kanal in ac (chn-vector) <=== a5 a I do Ob a5 cb B5 ce a5 ca 85 Cf 4e b5 f4 es 03 do Ob 85 do a5 df 85 d5 20 Oa eo 18 bo OT e9 02 fo 10 20 5a fe nbasin lda dftln bne bnio lda pntr sta lstp lda tblx sta lsxp jmp bnl5 bnio bnl5 bn20 a5 9c bn30 fo 04 a9 Od bn31 18 bn32 60 bn33 emp #$03 bne bn20 sta ersw lda sert sta indx jsr jloop5 ele rts bes bn30 cmp 11$02 beq bn50 jsr xtape lda status beq bn35 lda #$0d cle rts vorgabe input-grätenummer cursor spalte screen edit startposition eursor zeile letzte position lzeilel flag 'er' bei bs-eingabe rechter rand bildsehirm position letztes zeichen in zeile i/o operation status

610/710 os-kernal1 hard+soft ass/reass.... seite 0078 zeile adr. obj.-code source-code 3698 Heb 3699 f4cb 20 a5 ff bn35 3700 Hce 18 3701 f4cf 60 3 702 f4d0 3703 f4d0 3704 f4d0 20 e4 ff bn50 3705 f4d3 bo f5 3706 f4d5 c9 00 3707 f4d1 do fo 3708 f4d9 ad 7a 03 3709 f4dc 29 10 3710 f4de fo e9 3111 f4e0 ad Ta 03 3712 f4e3 29 60 3113 f4e5 do eo 3714 f4e7 20 e1 ff 3115 3716 Hea do e4 Hec 38 3711 f4ed 60 3718 Hee 3719 f4ee jsr kacptr clc rts jsr kgetin bcs bn33 cmp 11$00 bne bn32 lda rsstat and 11$10 beq bn32 lda rsstat and 11$60 bne bn31 jsr kstop bne bn50 sec rts 3720 f4ee ===> ausgabe I char auf akt. kanal <=== 3721 f4ee 3722 Hee 3723 Hef 3724 Hfl 3725 fh3 3726 fh5 3721 Hf6 3728 f4f9 3129 Hfa 60 3730 fhb 3131 fhb 3132 3733 3734 3735 48 a5 a2 c9 03 do 06 68 20 Od eo 18 fhb 90 06 Hfd 68 fhe 20 ab ff f501 18 3736 f502 60 3737 f503 3738 f503 3739 3 740 3741 3742 3743 37H 3745 3746 3747 3748 f503 f505 f507 f508 f50b f50c f50e (510 f511 f511 c9 02 fo Oa 68 20 5a fe 68 90 02 a9 00 60 nbsout pha lda dflto cmp 11$03 bne bo10 pla jsr jprt clc rts bo10 bcc bo20 pla jsr kciout clc rts bo20 cmp 11$02 beq bo50 pla jsr xtape rstbo pla bcc rstorl lda #$00 rs tor 1 rts 3749 f511 ===> zeichenvon ac nach rs232 <=== 3750 3751 f511 f511 3752 f514 3753 f517 3754 f51a Be 63 03 Be 64 03 ad 7a 03 29 60 bo50 stx tl sty t2 lda rsstat and 11$60 ein byte von iec-bus nach accu eingabe 1 char vom aktiven kanal in ac (queue-vectorl rs232: akt. rs232-status rs232: akt. rs232-status stop-taste lesen vorgabe output-gerätenummer zeichen aus ac auf bildschirm ein byte aus accu auf iec-bus zeichen von ac nach rs232 kernalvariable temporär kernalvariable temporär rs232: akt. rs232-status

610/710 os-kernall hard+soft ass/reass.... seite 0079 zeile adr. obj.-code source-code 3755 3756 3757 3758 3759 3760 376 I 3762 3763 3764 3765 f51c f51e f51f f521 f523 f526 f529 f52a f52d f52f f531 do 22 68 24 ao 10 03 20 c7 f3 8d 00 dd 48 ad Ta 03 29 60 do Of ad 01 dd 3766 f534 29 10 3767 f536 do 08 3768 f538 20 el ff 3769 f53b do ed 3770 3771 3 772 3773 3774 3775 3776 f53d 38 f53e bo cb f540 68 f54 I ae 63 03 f5h ac 64 03 f547 18 f548 60 bo80 bo60 bo90 bne bo90 pla bit sa bpl bo80 jsr toasci sta acia.,.drsn pha lda rsstat and 1$60 bne bo90 lda acia+srsn and 1$10 bne bo90 jsr kstop bne bo60 sec bcs rstbo pla ldx tl ldy t2 clc rts 3777 f549 3 778 f549 3779 f549 ===> eingabe-kanal öffnen <=== 3780 f549 3781 f549 20 Je f6 nchkin jsr lookup 3782 f54c 3 783 f54e 3784 f55 I 3785 f55 I 3786 f55 I 3787 f554 3 788 f556 3789 f558 3790 f55a 379 I f55c 3792 f55e 3 793 f560 3794 f562 3795 f564 3796 f566 fo 03 4c 3f f9 20 50 f6 a5 9f fo 2e c9 03 fo 2a bo 2c c9 02 do le a5 ao 29 02 fo lb 3797 f568 2d 02 dd 3798 f56b fo Of 3799 f56d 49 ff 3800 f56f 2d 02 dd 3801 f572 09 01 3802 f574 48 3803 f575 20 2e f4 3804 f578 68 3805 3806 3807 3808 3809 f579 f57c f57e f580 f583 8d 02 dd a9 02 do 06 20 5a fe 4c 48 f9 jx310 jx312 jx315 jx316 beq jx310 jmp error3 jsr jzioo lda fa beq jx320 cmp 1$03 beq jx320 bcs jx330 cmp #$02 bne jx315 lda sa and 1$02 beq jx316 and acia.,.cdr beq jx312 eor l$ff and acia+cdr ora 1$01 pha jsr rst232 pla sta acia+cdr lda #$02 bne jx320 jsr xtape jmp error6 akt. Sekundäradresse umw. ascii-code nach cbm-code 6551 acia: data reg. write transmit, read = receive rs232: akt. rs232-status 6551 acia: reset-write und status read-reg. stop-taste lesen kernalvariable temporär kernalvariable temporär status auf 0, zeiger file-tabelle erhöhen ausgabe 'i/o error: 3' filetabeilen in la,fa,sa kopieren akt. primäradresse (geräte-nummer} akt. sekundäradresse 6551 acia: command-reg. 6551 acia: command-reg. status rs232-schnittstelle 6551 acia: command-reg. ausgabe 'i/o error: 6'

610/710 os-kernall hard+soft ass/reass.... seite 0080 zeile adr. obj.-code source-code 3810 f586 38" f586 3812 f586 85 a I jx320 sta dftln vorgabe input-grätenummer 3813 f588 18 clc 38" f589 60 rts 3815 f5ba 3816 f5ba 3811 f5ba aa jx330 tax 3818 f58b 20 b4 ff jsr ktalk talk auf iec-bus ausgeben 3819 f5be a5 ao lda sa akt. Sekundäradresse 3820 f590 10 06 bpl jx340 3821 f592 20 83 f2 jsr tkatn 3822 f595 4c 9b f5 jmp jx350 3823 f598 3824 f598 3825 f598 20 96 ff jx340 jsr ktksa auf iec-bus sekundäradr. nach talk ausgeben 3826 f59b Ba jx350 txa 3827 f59c 24 9c bit status ilo operation status 3828 f59e 10 e6 bpl jx320 3829 f5a0 4c 45 f9 jmp error5 ausgabe "ilo error: 5" 3830 f5a3 3831 f5a3 3832 f5a3 ===> ausgabe-kanal öffnen <=== 3833 f5a3 3834 f5a3 20 Je f6 nckout jsr lookup status auf o. zeiger file-tabelle erhöhen 3835 f5a6 fo 03 beq ck5 3836 f5a8 4c 3f f9 jmp error3 ausgabe 'i/o error: 3' 3831 f5ab 3838 f5ab 3839 f5ab 20 50 f6 ck5 jsr jzioo filetabeilen in la,fa,sa kopieren 3840 f5ae a5 9f lda fa akt. primäradresse (geräte-nummerl 3841 f5b0 do 03 bne ckio 3842 f5b2 4c 4b f9 ck20 jmp error7 ausgabe 'ilo error: 7. 3843 f5b5 38H f5b5 3845 f5b5 c9 03 ckio cmp tl$03 3846 f5b1 fo 18 beq ck30 3847 f5b9 bo Ia bcs ck40 3848 f5bb c9 02 cmp tl$02 3849 f5bd do Of bne ckl5 3850 f5bf a5 ao lda sa akt. Sekundäradresse 3851 f5c I 4a lsr a 3852 f5c2 90 ee bcc ck20 3853 f5c4 20 2e f4 jsr rst232 status rs232-schnittstelle 3854 f5c7 20 fl f3 jsr xon232 3855 f5ca a9 02 lda tl$02 3856 f5cc do 03 bne ck30 3857 f5ce 20 5a fe ckl5 jsr xtape 3858 f5d, 85 a2 ck30 sta dflto vorgabe output-geritenummer 3859 f5d3 18 clc 3860 f5d4 60 rts 386, f5d5 3862 f~d~ 3863 f5d5 aa ck40 tax 3864 f5d6 20 bl ff jsr klistn listen auf iec-bus ausgeben 3865 f5d9 a5 ao lda sa akt. Sekundäradresse

610/710 os-kernall hard+soft ass/reass.... seite OOBI zeile adr. obj.-code source-code 3B66 f5db 10 05 3B67 f5dd 20 77 f2 3B6B f5e0 do 03 3869 f5e2 20 93 ff ck50 3B70 f5e5 Ba ck60 3B71 f5e6 24 9c 3B72 f5eb 10 e7 3B73 f5ea 4c 45 f9 3B 74 3B75 3B76 38 77 3B7B 38 79 3BBO 3881 3882 38B3 f5ed f5ed f5ed f5ed f5ed f5ee f5fl f5f3 f5h f5f5 bpl ck50 jsr sca tn bne ck60 jsr ksecnd txa bit status bpl ck30 jmp error5 ===> logisches file schliessen <=== OB 20 0 f6 fo 03 28 IB 60 38B4 (5(6 38B5 f5f6 38B6 f5f6 20 50 f6 3BB 7 f5f9 28 3BBB f5fa Ba 38B9 f5fb 48 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 390 7 3908 3909 3910 3911 3912 3913 39" 3915 3916 f5fc f5fe f600 f602 f604 f606 f608 f60a f60c f60e f611 f613 f6" f617 F61a F61d F61e f61f F622 F625 F627 F62a F62d F630 F633 f636 F639 3917 f63c 18 3918 f63d 60 3919 F63e 3920 F63e 90 IF a5 9F FO lb c9 03 FO 17 bo 12 c9 02 do 07 a9 00 8d 02 dd FO Oa 68 20 le F6 20 5a fe 20 bf F8 68 aa ce 60 03 ec 60 03 FO 15 ac 60 03 b9 34 03 9d 34 03 b9 3e 03 9d 3e 03 b9 48 03 9d 48 03 nclose php jsr jltlk beq jxiio plp clc rts jxiio jx 115 jxl20 jxl50 jx151 jxl60 clc rts jsr jzioo plp txa pha bcc jxl50 lda Fa beq jxl50 cmp #$03 beq jxl50 bcs jxl20 cmp #$02 bne jxll5 lda #$00 sta acia+cdr beq jxl50 pla jsr jxl51 jsr xtape jsr clsei pla tax dec ldtnd cpx ldtnd beq jxl60 ldy ldtnd lda lat,y sta lat,x lda fat,y sta Fat,x lda sat,y sta sat,x auf iec-bus sekundäradr. nach listen ausgeben ilo operation status ausgabe 'i/o error: 5' Filetabellen in la,fa,sa kopieren akt. primäradresse lgeräte-nummerl 6551 acia: command-reg. zeiger in File-tabellen zeiger in File-tabellen 3921 F63e ===> status auf 0, zeiger file-tabelle erhöhen <=== 3922 f63e zeiger in file-tabellen tabelle akt. log. file # I 10 bytel tabelle akt. log. file # (10 bytel tabeile akt. primäradr. tabeile akt. primäradr. tabeile akt. sekundäradr. tabelle akt. sekundäradr.

610/710 os-kernall hard+soft ass/reass.... seite 0082 zeile adr. obj.-code source-code 3923 f63e a9 00 lookup lda lt$00 3924 f640 85 9c sta status i/o Operation status 3925 f642 Ba txa 3926 f643 ae 60 03 jltlk ldx ldtnd zeiger in file-tabellen 3927 f646 ca jx600 dex 3928 f6h 30 2d bmi lkups4 3929 f649 dd 34 03 cmp lat, x tabelle akt. log. file lt (10 bytel 3930 f64c do fb bne jx600 3931 f64e 18 clc 3932 f6h 60 rts 3933 f650 3934 f650 3935 f650 ===> filetsbellen in la,fa,sa kopieren <=== 3936 f650 3937 f650 bd 34 03 jzioo lda lat, x tabelle akt. log. file lt ( 10 bytel 3938 f653 85 9e sta la akt. logische filenummer 3939 f655 bd Je 03 lda fa t, x tabelle akt. primäradr. 3940 f658 85 9f sta fa akt. primäradresse (geräte-nummer) 3941 f65a bd H 03 lda sat, x tabeile akt. sekundäradr. 3942 f65d 85 ao sta sa akt. Sekundäradresse 3943 f65f 60 rts 39H f660 3945 f660 3946 f660 ===> file-parameter aufgrund sekundäradr. suchen <=== 3941 f660 39H f660 98 lkupsa tya 3949 f661 ae 60 03 ldx ldtnd zeiger in file-tabellen 3950 f664 ca lkups2 dex 3951 f665 30 Of bmi lkups4 3952 f667 dd H 03 cmp sat,x tabeile akt. sekundäradr. 3953 f66a do f8 bne lkups2 3954 f66c 18 clc 3955 f66d 20 50 f6 lkups3 jsr jzioo filetsbellen in la,fa.sa kopieren 3956 f610 a8 tay 3957 f671 a5 9e lda la akt. logische filenummer 3958 f6 13 a6 9f ldx fa akt. primäradresse (geräte-nummerl 3959 f675 60 rts 3960 f6 76 3961 f676 3962 f616 38 lkups4 sec 3963 f677 60 rts 3964 f6 18 3965 f678 3966 f678 ===> file-parameter aufgrund logischer adr. suchen <=== 396 7 f6 18 3968 f678 aa lkupla tax 3969 f679 20 Je f6 jsr lookup status auf 0, zeiger file-tabelle erhöhen 3910 f6 Tc 90 ef bcc lkups3 3971 f67e 60 rts 3912 f6 7f 3973 f67f.end 3914 f6 7f.lib kernal2

610/710 os-kernal2 hard+soft ass/reass.... seite 008J zeile adr. obj.-code source-code J976 F67f J977 F67F ===> alle logischen Files schliessen <=== J978 F67F J979 J980 J981 J982 J98J J984 J985 J986 J987 J988 J989 F67F F682 F685 F688 F689 f68b F68e F690 F69J F696 F698 J990 f69b J8 J991 f69c 3992 F69F J99J F6a I J994 F6aJ J995 f6a6 J996 f6a6 6e 65 03 8d 66 OJ ae 60 OJ ca JO lb 2c 65 03 10 08 ad 66 OJ dd Je OJ do FO bd J4 OJ 20 cj ff 90 e4 a9 00 8d 60 OJ nclall ror xsav sta savx ncloio ldx ldtnd ncl020 dex bmi nclrch bit xsav bpl nclojo lda savx cmp Fat,x bne ncl020 nclojo lda lat,x sec jsr kclose bcc ncloio lda #$00 sta ldtnd J997 F6a6 ===> alle kanäle schliessen <=== J998 f6a6 J999 F6a6 a2 OJ 4000 4001 4002 400J 4004 4005 4006 4007 4008 4009 4010 40 II F6a8 F6aa f6ac f6af f6b I F6bJ F6b6 F6b8 f6ba f6bc f6be f6bf 60 4012 F6bf 4013 F6bf 4014 f6bf 4015 f6bf 4016 4017 4018 F6c I f6c4 f6c4 4019 F6c4 4020 F6c6 4021 4022 F6c9 f6cb 402J F6ce 4024 f6ce 4025 f6ce 4026 f6dl 4027 f6dj 4028 f6d5 4029 F6d8 40JO F6d8 4031 f6d8 40J2 f6db e4 a2 bo 03 20 ae Ff e4 al bo OJ 20 ab ff a2 OJ 86 a2 a9 00 85 a I nclrch ldx #$0J cpx dflto bcs jx750 jsr kunlsn jx750 cpx dftln bcs clall2 jsr kuntlk clall2 ldx #$03 stx dflto lda #$00 sta dftln rts ===> log. file Öffnen/befehl ausgeben <=== 90 OJ 4c Ja f7 nopen bcc opooo jmp tranr a6 9e opooo ldx la 20 Je F6 jsr lookup do OJ 4c Je F9 ae 60 OJ eo Oa 90 OJ 4C 39 f9 opioo bne opioo jmp error2 ldx ldtnd cpx #$0a bcc op I 10 jmp errorl ee 60 03 opiio inc ldtnd a5 9e lda la kernalvariable temporär kernalvariable temporär zeiger in File-tabellen alle kanäle schliessen kernalvariable temporär kernalvariable temporär tabeile akt. primäradr. tabelle akt. log. File# 110 bytel logisches File schliessen zeiger in File-tabellen vorgabe Output-gerätenummer unlisten auf iec-bus ausgeben vorgabe input-grätenummer untalk auf iec-bus ausgeben vorgabe output-gerätenummer vorgabe input-grätenummer sek.adr. 15 + name auf ieee akt. logische Filenummer status auf 0, zeiger file-tabelle erhöhen ausgabe "i/o error: 2 zeiger in File-tabellen ausgabe i/o error: I zeiger in file-tabellen akt. logische Filenummer

610/110 os-kernal2 hard+soft ass/reass.... seite OOB4 zeile adr. obj.-code source-code 4033 f6dd 9d 34 03 sta lat,x tabelle akt. log. file I (10 byte} 4034 f6e0 a5 ao lda sa akt. Sekundäradresse 4035 f6e2 09 60 ora 1$60 4036 f6e4 B5 ao sta sa akt. Sekundäradresse 4037 f6e6 9d 48 03 sta sat, x tabelle akt. sekundiiradr. 403B f6e9 a5 9f lda fa akt. primiiradresse lgeräte-nummerj 4039 f6eb 9d Je 03 sta fat, x tabelle akt. primiiradr. 4040 f6ee fo 15 beq opl 75 4041 f6f0 c9 03 cmp 1$03 4042 f6f2 fo beq op I 75 " 4043 f6f4 90 05 bcc opl50 4044 f6f6 20 07 f7 jsr openi open ieee-kanal, name senden 4045 f6f9 90 Oa bcc op175 4046 f6fb c9 02 opl50 cmp 1$02 4047 f6fd do 03 bne opl52 4048 f6ff 4c BI fj jmp opn232 open rs232-schnittstelle 4049 no2 4050 no2 4051 no2 20 5a fe opl52 jsr xtape 4052 f705 IB opl 75 clc 4053 f706 60 rts 4054 f707 4055 f707 4056 f707 ===> open ieee-kanal, name senden <===. 4057 f707 405B f707 a5 ao openi lda sa akt. Sekundäradresse 4059 f709 30 2d bmi op50 4060 f70b a4 9d ldy fnlen länge akt. filename 4061 f70d fo 29 beq op50 4062 f70f a5 9f lda fa akt. primäradresse (geriite-nummerj 4063 f711 20 bl ff jsr klistn listen auf iec-bus ausgeben 4064 f714 a5 ao lda sa akt. Sekundäradresse 4065 f716 09 fo ora l$f0 4066 f71b 406 7 f71b 406B f71b ===> ac=sek.adr. + name auf ieee <=== 4069 f71b 4070 f71b 20 93 ff openib jsr ksecnd auf iec-bus sekundäradr. nach listen ausgeben 407, f71b a5 9c lda status i/o operation status 4072 f7 ld 10 05 bpl op35 4073 f71f 6B pla 4074 f720 6B pla 40 75 f721 4c 45 f9 jmp error5 ausgabe 'i/o error: 5' 4076 f724 4077 f724 407B f724 as 9d op35 lda fnlen länge akt. filename 40 79 f126 fo Od beq op45 40BO f72b ao 00 ldy 1$00 40BI f72a 20 92 fe op40 jsr fnadry filename 'bank x in ac, offset yr 40B2 f72d 20 ab ff jsr kciout ein byte aus accu auf iec-bus 40B3 f730 cb iny 40B4 f7ji C4 9d cpy fnlen länge akt. filename 40B5 f133 do fs bne op40 4086 f735 20 ae ff op45 jsr kunlsn unlisten auf iec-bus ausgeben 40B 7 f73b 18 opso clc 4088 f739 60 rts 4089 f7ja

610/710 os-kernal2 hard+soft ass/reass... seit& 0085 zeile adr. obj.-code source-code 4090 f73a 4091 f73a ===> sek.adr. 15 + name auf ieee <=== 4092 f73a 4093 4094 4095 4096 4097 f73a f73c f73f fhi f743 a5 9f 20 b, ff a9 6f 85 ao 4c 18 f7 tranr lda fa jsr klistn lda ll$6f sta sa jmp openib 4098 f746 4099 f746 4100 f746 ===>einlesen vom log. file <=== 4101 f746 4102 f746 Be 6f 03 nload stx relsal 4103 f749 Be 70 03 sty relsah 4104 fhc 8d 5f 03 sta verck 4105 f7h Bd 7 I 03 sta relsag 4106 f752 a9 00 lda 11$00 4107 f754 85 9c sta status 4108 f756 a5 9f lda fa 4109 f758 do 03 bne ld20 4110 f75a 4c 51 f9 ldio jmp error9 4111 f75d 4112 f75d 4113 f75d 4114 f75f 4115 f761 4116 f763 4117 f766 4118 f766 4119 f766 4120 f768 4 12, f76a 4122 f76c 4123 f76e 4124 f771 4125 f771 4126 f771 412 7 f774 4128 f777 4129 f779 4130 f77c 4131 f77e 4132 f781 4133 f784 4134 f786 4135 f788 4136 f78a 4137 f78b 4138 f78c 4139 f78e 4140 f791 4141 f791 f791 c9 03 fo f9 bo 03 4c 10 f8 a9 60 85 ao a4 9d do 03 4c 4e f9 20 lb fb 20 0 7 f7 a5 9f 20 b4 ff a5 ao 20 96 ff 20 a5 ff 85 96 85 99 a5 9c 4a 4a 90 03 4c 42 f9 ld20 ld22 ld25 20 a5 ff ld30 85 97 f794 4144 f796 85 9a 4145 f798 20 40 fb 4146 f79b ad 77 03 cmp 11$03 beq ld10 bcs ld22 jmp ld100 lda 11$60 s ta sa ldy fnlen bne ld25 jmp errorb jsr luking jsr openi lda fa jsr ktalk lda sa jsr ktksa jsr kacptr sta eal sta stal lda status lsr a lsr a bcc ld30 jmp error4 jsr kacptr sta eah sta stah jsr loding lda relsag akt. primäradresse (geräte-nummerl listen auf iec-bus ausgeben akt. sekundäradresse ac=s&k.adr. + name auf ieee addrl variable start-load-adr. addrh variable start-load-adr. load/veri fy flag bank variable start-load-adr. ilo operation status akt. primäradresse lgeräte-nummerl ausgabe 'i/o error: 9' akt. sekundäradresse länge akt. filename ausgabe 'ilo error: 8' open ieee-kanal, name senden akt. primäradresse lgeräte-nummerl talk auf iec-bus ausgeben akt. Sekundäradresse auf iec-bus sekundäradr. nach talk ausgeben ein byte von iec-bus nach accu addrl ende akt. load/store addrl anfang akt. load/store i/o operation status ausgabe 'i/o error: 4' ein byte von iec-bus nach accu addrh ende akt. load/store addrh anfang akt. load/store bank variable start-load-adr.

610/710 os-kernal2 hard+soft asslreass... seite 0086 zeile adr. obj.-code source-code 41H f79e 85 98 sta eas bank ende akt. load/store 4148 f7a0 85 9b sta stas bank anfang akt. load/store ~IH f7a2 ad 6f 03 lda relsal addrl variable start-load-adr. 4150 f7a5 2d 70 03 and relsah addrh variable start-load-adr. 4151 f7a8 c9 ff cmp #$ff 4152 f7aa fo Oe beq ld40 4153 f7ac ad 6f 03 lda relsal addrl variable start-load-adr. 4154 f7af 85 96 sta eal addrl ende akt. load/store 4155 f7bl 85 99 sta stal addrl anfang akt. load/store 4156 f7b3 ad 70 03 lda relsah addrh variable start-load-adr. 4157 f7b6 85 97 sta eah addrh ende akt. load/store 4158 f7b8 85 9a sta stah addrh anfang akt. load/store 4159 f7ba a9 fd ld~o lda #$fd 4160 f7bc 25 9c and status ilo operation status 4161 f7be 85 9c sta status i/o operation status 4162 f7c0 20 el ff jsr kstop stop-taste lesen 4163 f7c3 do 03 bne ld45 4164 f7c5 4c b3 f8 jmp break 4165 f7c8 4166 f7c8 4167 f7c8 20 a5 ff ldh jsr kacptr ein byte von iec-bus nach accu ~168 f7cb aa tax 4169 f7cc a5 9c lda status i/o operation status "70 f7ce h lsr a 4171 f7cf h lsr a "72 f7d0 bo eb bcs ld40 ~ 173 f7d2 Ba txa 4174 f7d3 a6 01 ldx i6509 6509 indirection register 4175 f7d5 98 ldy eas bank ende akt. load/store "76 f7d7 84 ~ 01 sty i6509 6509 indirection register 4177 f7d9 ao 00 ldy #$00 4178 f7db 2c 5f 03 bit verck load/verify flag '179 f7de 10 Oe bpl ld60-2 4180 f7e0 85 93 sta sal addrl akt. load/store adresse 4181 f7ez bl 96 lda (eall, y addrl ende akt. load/store 4182 f7e4 c5 93 cmp sal addrl akt. load/store adresse 4183 f7e6 fo OB beq ld60 4184 f7e8 a9 10 lda #$10 4185 f7ea 20 5f fb ;jsr udst 'ora' ac in status 4186 f7ed ad 91 96 lda pulst I 4187 f7f0 86 01 ld60 stx i6509 6509 indirection register 4188 f7f2 e6 96 inc eal addrl ende akt. load/store 4189 f7h do Oa bne ld64 4190 f7f6 e6 97 inc eah addrh ende akt. load/store 4191 f7f8 do 06 bne ld64 4192 f7fa e6 98 inc eas bank ende akt. load/store 4193 f7fc a9 02 lda #$02 4194 f7fe 85 96 sta eal addrl ende akt. load/store 4195 fboo 24 9c ld64 bit status i/o operation status 4196 f802 50 b6 bvc ld40 4197 f804 20 ab ff ;jsr kuntlk untalk auf iec-bus ausgeben 4198 f807 20 bf fb jsr clsei 4199 fboa 4c 13 fb jmp ldibo 4200 fbod HOl fbod 4202 fbod 4c 42 f9 jmp error~ ausgabe "i/o error: '. 4203 fbio 4204 fbio

610/710 os-kernal2 hard+soft ass/reass.... seite 0087 zeile adr. obj.-code source-code 4205 f810 20 5a fe ldioo jsr xtape 4206 f813 18 ldl80 clc 4207 f8 14 a5 98 lda eas bank ende akt. loadlstore 4208 f8 16 a6 96 ldx eal addrl ende akt. load/store 4209 f818 a4 97 ldy eah addrh ende akt. load/store 4210 f81a 60 rts 4211 f81b 4212 f81b 4213 f81b 2c 61 03 luking bit msgflg message flag 4214 f81e 10 lf bpl ld115 4215 f820 ao Oe ldy #$Oe 4216 f822 20 lc f2 jsr spmsg test errorflag, ausgabe systemmeldung 4217 f825 a5 9d lda fnlen länge akt. Filename 4218 f827 fo 16 beq ld115 4219 f829 ao 1 7 ldy #$17 4220 f82b 20 lc f2 jsr spmsg test errorflag, ausgabe systemmeldung 4221 f82e a4 9d outfn ldy fnlen länge akt. Filename 4222 f830 fo Od beq ldll5 4223 f832 ao 00 ldy #$00 4224 f834 20 92 fe ldiio jsr fnadry Filename "bank X in ac, offset yr 4225 f837 20 d2 ff jsr kbsout ausgabe 1 char auf akt. kanal 4226 f83a c8 iny 4227 f83b c4 9d cpy fnlen länge akt. Filename 4228 f83d do f5 bne ld!io 4229 f83f 60 ld115 rts 4230 f840 4231 f840 4232 f840 ao lb loding ldy #$1b 4233 f842 ad 5f 03 lda verck load/verify flag 4234 f845 10 02 bpl ld410 4235 f841 ao 2b ldy #$2b 4236 f849 4c lc f2 ld410 jmp sp.msg test errorflag, ausgabe systemmeldung 4237 f84c 4238 f84c 4239 f84c ===> abspeichern auf log. file <=== 4240 f84c 4241 f84c b5 00 nsave lda e6509,x 6509 execution register 4242 f84e 85 99 sta stal addrl anfang akt. load/store 4243 f850 b5 01 lda i6509,x 6509 indirection register 42H f852 85 9a sta stah addrh anfang akt. load/store 4245 f854 b5 02 lda usrpok,x jmp code für usr '-routine 4246 f856 85 9b sta stas bank anfang akt. load/store 4241 f858 98 tya 4248 f859 aa tax 4249 f85a b5 00 lda e6509,x 6509 execution register 4250 f85c 85 96 sta eal addrl ende akt. load/store 4251 f85e b5 01 lda i6509,x 6509 indirection register 4252 f860 85 97 sta eah addrh ende akt. load/store 4253 f862 b5 02 lda usrpok,x jmp code für 'usr '-routine sta eas bank ende akt. load/store akt. primäradresse (geräte-nummerl 4254 4255 f864 f866 85 98 a5 9f lda fa 4256 f868 do 03 bne sv20 4257 f86a 4c 51 f9 sv!o jmp error9 ausgabe 'i/o error: 9' 4258 f86d 4259 f86d

610/710 os-kernal2 hard+soft ass/reass.... seite 0088 zeile adr. obj.-code source-code 4260 f86d 4261 f86f 4262 f871 4263 fb73 4264 fb75 4265 fb 77 4266 fb79 4267 fb7b 4268 f8 7e 4269 fb7e 4270 fb7e 4271 fbbi 4272 fbb4 4273 fb86 4214 fbb9 42 75 fbbb 427B 4279 42BO 42BI 42B2 42B3 42B4 42B5 42B6 42B7 42BB 4289 4290 4291 4292 4293 4294 fbbe fb90 fb93 fb95 fb9b fb9a fb9d fb9f fba2 f8a4 fba6 fba9 f8ac f8af fbb I fbb3 fbb6 f8bb f8b9 4295 fbba 4296 fbba 4297 fbba 429B f8bc 4299 f8bf 000 fbc I 001 fbc3 002 fbc5 003 fbcb 004 fbca 005 f8cc 006 f8ce c9 03 fo f9 90 63 a9 61 B5 ao a4 9d do 03 4c h f9 20 07 f7 20 d9 fb a5 9f 20 b I ff a5 ao 20 93 ff a6 01 20 62 fe a5 93 20 ab ff a5 94 20 ab ff ao 00 20 71 fe bo 16 b I 93 20 ab ff 20 7f fe 20 el ff do ee B6 01 20 bf fb a9 00 38 60 B6 01 20 ae ff 24 ao 30 II a5 9f 20 bl ff a5 ao 29 ef 09 eo 20 93 ff 4307 fbdl 20 ae ff 008 fbd4 18 009 fbd5 60 010 f8d6 Oll 012 013 014 f8d6 f8d6 f8d9 fbdc 20 5a fe ad 61 03 10 f7 sv20 sv25 sv30 break sv50 clsei cmp 11$03 beq svio bcc svioo lda 11$61 sta sa ldy fnlen bne sv25 jmp errorb jsr openi jsr saving lda fa jsr klistn lda sa jsr ksecnd ldx i6509 jsr rd300 lda sal jsr kciout lda sah jsr kciout ldy 11$00 jsr cmpste bcs sv50 lda (sall.y jsr kciout jsr incsal jsr kstop bne sv30 stx i6509 jsr clsei lda 11$00 sec rts stx i6509 jsr kunlsn bi t sa bmi sviio lda fa jsr klistn lda sa and #$ef ora ll$e0 jsr ksecnd jsr kunlsn sviio clc svll5 rts svioo jsr xtape saving lda msgflg bpl svll5 akt. Sekundäradresse länge akt. filename ausgabe "i/o errar: B" open ieee-kanal, name senden akt. primäradresse (geräte-nummerl listen auf iec-bus ausgeben akt. Sekundäradresse auf iec-bus sekundäradr. nach listen ausgeben 6509 indirection register "stah"-vektor nach 'sah'-vektor und bank# nach i6509 addrl akt. load/store adresse ein byte aus accu auf iec-bus addrh akt. laad/stare adresse ein byte aus accu auf iec-bus vektor 'sal - eal addrl akt. load/store adresse ein byte aus accu auf iec-bus stop-taste lesen 6509 indirectian register 6509 indirection register unlisten auf iec-bus ausgeben akt. Sekundäradresse akt. primäradresse (geräte-nummerl listen auf iec-bus ausgeben akt. Sekundäradresse auf iec-bus sekundäradr. nach listen ausgeben unlisten auf iec-bus ausgeben message flag

610/710 os-kernal2 hard+soft ass/reass.... seite 0089 zeile adr. obj.-eode souree-eode 4315 fbde ao 23 4316 fbeo 20 le f2 ldy #$23 jsr spmsg 4317 f8e3 4e 2e fb jmp outfn 4318 f8e6 4319 f8e6 4320 f8e6 ===> zeitlesen lam/pm,h,min,s, 1/10 sl <=== 432 I f8e6 4322 f8e6 4323 f8e9 ad 08 de 4B rdtim lda eia+todio pha 4324 fbea 48 pha 4325 fbeb Oa asl a 4326 fbee Oa asl a 4327 fbed Oa asl a 4328 fbee 29 60 and #$60 4329 fbfo Od Ob de ora eia+todhr 4330 f8f3 ab tay 433 I f8f4 68 pla 4332 f8f5 6a ror a 4333 fbf6 6a ror a 4334 f8f7 29 BO and #$80 4335 f8f9 Od 09 de ora eia+todsee 4336 fbfe 85 93 sta sal 4337 433B fbfe fbff 6a 29 BO ror a and #$80 4339 f901 Od Oa dc ora eia+todmin 4340 f904 aa tax 4341 f905 6B pla 042 f906 cd OB dc emp cia+todio 4343 f909 do db bne rdtim 43H f90b a5 93 lda sal 4345 f90d 60 rts 4346 f90e 434 7 f90e 4348 f90e ===> zeit setzen lam/pm,h,min,s, 1/10 sl <=== 4349 4350 051 4352 4353 4354 4355 4356 f90e f90e f90f f910 f9" f913 f916 f919 48 4B 6a 29 BO Od Of de Bd Of dc 9B 4357 f91a 2a 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 436B 4369 4370 f91b f91e f91e f91f f921 f922 f923 f925 f926 f927 f929 f92c f92f 2a 26 93 2a 26 93 Ba 2a 26 93 6B 2a 26 93 Be Ob dc Be Oa dc 6B 4371 f930 Bd 09 dc settim pha pha ror a and #$BO ora cia+crb sta cia+erb tya rol a rol a rol sal rol a rol sal txa rol a rol sal pla rol a rol sal sty cia+todhr stx cia+todmin pla sta cia+todsec test errorflag, ausgabe Systemmeldung 6526 cia: uhr: 1/10 sek.-reg. 6526 cia: uhr: stunde-am/pm-reg. 6526 eia: uhr: sek. -reg. addrl akt. load/store adresse 6526 cia: uhr: min.-reg. 6526 cia: uhr: 1/10 sek.-reg. zeitlesen lam/pm,h,min,s,l/10 sl addrl akt. load/store adresse 6526 cia: control reg. b (erb} 6526 cia: control reg. b (crbj addrl akt. load/store adresse addrl akt. load/store adresse addrl akt. load/store adresse addrl akt. load/store adresse 6526 cia: uhr: stunde-am/pm-reg. 6526 cia: uhr: min.-reg. 6526 cia: uhr: sek. -reg.

610/710 os-kernal2 hard+soft ass/reass.... seite 0090 zeile adr. obj.-code source-code 4312 f933 a5 93 lda sal addrl akt. load/store adresse 4373 f935 8d OB dc sta cia+tod!o 6526 cia: uhr: 1/10 sek. -reg. 4374 f938 60 rts 4315 f939 4376 f939 4377 f939 ===> ausgabe 'ilo error: f. <=== 4318 f939 4379 f939 a9 01 errorl lda #$01 4380 f93b 2c.byte $2c 4381 f93c 4382 f93c 4383 f93c ===> ausgabe 'ilo error: 2. <=== 43114 f93c 4385 f93c a9 02 error2 lda #$02 OB& f93e 2c.byte $2c 4387 f931 4388 f93f 4389 f93f ===> ausgabe 'ilo error: 3. <=== 4390 f93f 4391 f93f a9 03 error3 lda #$03 4392 f941 zc.byte $2c 4393 f942 4394 f942 095 f942 ===> ausgabe 'i!o error: 4' <=== 4396 f942 4397 f942 a9 04 error4 lda #$04 4398 f9h Zc.byte $2c 4399 f945 HOO f945 HOl f945 ===> ausgabe 'i/o error: 5' <=== H02 f945 4403 f945 a9 05 error5 lda #$05 4404 f941 Zc.byte $Zc 4405 f948 H06 f948 4407 f948 ===> ausgabe 'i/o error: 6' <=== HOB f94b 4409 f948 a9 06 error6 lda #$06 HIO f94a Zc.byte $Zc "" f94b Hl2 f94b "13 f94b ===> ausgabe 'i/o error: 7. <=== "" f94b Hl5 f94b a9 07 error7 lda 1$07 H16 f94d 2c.byte $2c "' 7 HIB f94e f94e Hl9 f94e ===> ausgabe 'i/o error: 8. <=== H20 f94e 4421 f94e a9 OB errorb lda #$08 H22 f950 Zc.byte $2c 4423 f951 4424 f951 4425 f951 ===> ausgabe 'i/o error: 9' <=== H26 f'951 4427 f951 a9 09 error9 lda 1$09 H28 f953 H29 f953

610/710 os-kernalz hard+soft ass/reass... seite 0091 zeile adr. obj. -code source-code H30 f953 ===> Fehler ausgabe-routine <=== H31 f953 H3Z f953 48 errorx pha H33 f954 zo cc ff jsr kclrch ein-/ausgabekanal schliessen H34 f957 ao 00 ldy #$00 H35 f959 Zc 61 03 bit msgflg message flag H36 f95c 50 Oa bvc erexit H37 f95e zo Zl fz jsr msg ausgabe systemmeldung. offset=yr H38 f961 68 pla H39 f96z 48 pha 4HO f963 09 30 ora #$30 f965 zo dz ff jsr kbsout ausgabe I char auf akt. kanal "" 4HZ f968 68 erexit pla HO f969 38 sec HH f96a 60 rts H45 f96b H46 f96b 4H7 f96b ===> stop-taste Überprüfen <=== HH f96b H49 f96b a5 a9 nstop lda stkey stop tasten flag H50 f96d zg 0 I and #$0 I H51 f96f do 07 bne stopz H5Z f971 OB php H53 f97z zo cc ff jsr kclrch ein-iausgabekanal schliessen H54 f975 85 dl sta ndx anzahl bytes im tastaturpuffer H55 f977 ZB plp H56 f9 78 60 stopz rts H57 f979 H58 f979 H59 f979 ===> system-zeit aktualisieren <=== H60 f9 79 H61 f979 ad oz df udtim lda triz+pc 65Z5 triport Z: port reg. c H6Z f97c 4a lsr a H63 f97d bo IZ bcs udexit H64 f97f a9 fe lda #$fe H65 f981 Bd 01 df sta triz+pb 65Z5 triport Z: port reg. b H67 f986 Zd df and triz+pc H66 f984 a9 10 oz lda #$10 65Z5 triport Z: port reg. c H68 f989 do 0 I bne udttt H69 f9bb 38 sec H 70 f9bc a9 ff udttt lda #$ff H71 f9be Bd 01 df sta triz+pb 65Z5 triport Z: port reg. b 4HZ f991 Za udexit rol a H73 f99z 85 a9 sta stkey stop tasten flag H74 f994 60 rts H75 f995 H 76 f995 H77 f995 ===> test-bytes für cbm-rom <=== H78 f995 H79 f995 cz patall.byte $cz, $cd 4479 f996 cd HBO f997 HBI f99 7 HBZ f997 ===> system reset routine <=== HBJ f99l H84 f997 az fe start ldx #$fe H85 f999 78 sei H86 f99a 9a txs

610/710 os-kernal2 hard+soft ass/reass.... seite 0092 zeile adr. obj. -code source-code H87 f99b d8 cld H88 f99c a9 a5 lda ll$a5 H89 f99e cd fa 03 cmp evect+2 warmstart-variable H90 f9a I do 07 bne scold system-kaltstart H91 f9a3 ad fb 03 lda evect+3 warmstart-variable H92 f9a6 c9 5a cmp ll$5a H93 f9a8 fo 4e beq swarm system-warmstart H94 f9aa H95 f9aa H96 f9aa H97 f9aa ===> system-kaltstart <=== H98 f9aa a9 06 scold lda 11$06 H99 f9ac 85 96 sta eal addrl ende akt. load/store 4500 f9ae a9 00 lda 11$00 4501 f9b0 85 97 sta eah addrh ende akt. load/store 4502 f9b2 Bd f8 03 sta evect addrl warmstart-vector 4503 f9b5 a2 30 ldx 11$30 4504 f9b7 ao 03 sloopo ldy 11$03 4505 f9b9 a5 97 lda eah addrh ende akt. load/store 4506 f9bb 30 18 bmi sloop2 4507 f9bd 18 clc HOB f9be 69 10 adc #$10 4509 f9cij 85 97 sta eah addrh ende akt. load/store 4510 f9c2 e8 inx 4511 f9c3 Ba txa 4512 f9c4 dl 96 cmp leall, y addrl ende akt. load/store 4513 f9c6 do ef bne sloopo 4514 f9c8 88 dey 4515 f9c9 bl 96 sloopl lda leal I, y addr l ende akt. load/store 4516 f9cb 88 dey 4517 f9cc 30 Oa bmi sloop3 4518 f9ce d9 95 f9 cmp patall,y test-bytes für cbm-rom 4519 f9dl fo f6 beq sloop I 4520 f9d3 do e2 bne sloopo 4521 f9d5 ao eo sloop2 ldy ll$e0 4522 f9d1 2c.byte $2c 4523 f9d8 a4 97 sloop3 ldy eah addrh ende akt. load/store 4524 f9da Be f9 03 sty evect+1 addrh warmstart-vector 4525 f9dd aa tax 4526 f9de 10 18 bpl swarm system-warmstart 4527 f9e0 20 fb f9 jsr ioinit i/o register init. 4528 f9e3 a9 fo lda ll$f0 4529 f9e5 85 c I sta pkybuf 1 addrh start programmierbare tasten 4530 f9e7 20 04 eo jsr jcint 4531 f9ea 20 88 fa jsr ramtas ram- tes t, zeiger ini t. 4532 f9ed 20 a2 fb jsr restor standard-vektoren für jsr und interrupts einrichten 4533 f9f0 20 04 eo jsr jcint 4534 f9f3 a9 a5 lda ll$a5 4535 f9f5 Bd fa 03 sta evect+2 warmstart-variable 4536 f9f8 6c fb 03 swarm jmp (evectj system-warmstart 4537 f9fb 4538 f9fb 4539 f9fb 4540 f9fb ===> i/o regis ter ini t. <=== 454! f9fb a9 f3 ioinit lda #$f3 4542 f9fd Bd 06 de sta tril+creg 6525 triport 1: control reg. 4543 faoo ao ff ldy #$ff

610/710 os-kernal2 hard+soft ass/reass.... seite 0093 zeile adr. obj.-code souree-eorle 4544 fa02 4545 fa05 4546 fa07 4547 faoa 45H faoe 4549 faof 4550 fa 11 4551 fa 14 4552 fal6 4553 fa 19 4554 fa le 4555 fa lf 4556 fa22 4557 fa25 455B fa2b 4559 fa29 4560 fa2e 4561 fa2f 4562 fall 4563 fa34 4564 fa31 4565 faja 4566 fa3d 4567 fa40 456B fa43 4569 fa 46 4570 fah 4571 fa49 4572 fa4e 4513 fa4e 4574 fah 4575 fa51 4576 fa52 4577 fa55 451B fa56 4519 fa5b 45BO fa5a 45BI fa5c 45B2 fa5e 4583 fa5f 45B4 fa6 I 4585 fa64 45B6 fa67 458 7 fa69 45BB fa6c 45B9 fa6e 4590 fa 71 4591 fa 74 4592 fa 77 4593 fa Ta 4594 fa7e 4595 fa 7f 4596 fab 1 4597 fa84 4598 fabt 4599 fa88 4600 fabb Be 05 de a9 5e Bd 01 de a9 Tri Bd 04 de a9 3d Bd 00 de a9 Jf Bd 03 de Be 00 df Be 01 de Be 03 df Be 04 df 4e 00 df eb Be 02 df Be 05 df a9 7f Bd Orl de Be 02 de Be 03 rle Be Of de Bd OB de Be 02 de ad 02 de 6a 90 fa Be 02 de a2 00 eb rio frl eb arl 02 rle 68 90 f6 eo 1b 90 03 a9 BB 2e a9 OB Bd Oe de arl Od rlb a9 90 Bd Od db a9 40 Bd 01 db Be 02 db Be Of rlb Be Oe db a9 4B Brl 03 rlb a9 01 Od 01 de Bd 01 rle 60 io100 io I 10 iol20 sty tril+drlpe lda l$5e sta tril+pb lrla l$1rl sta tril+ddpb lda #$3d sta tri1+pa lda #$3f sta tril+drlpa sty tri2+pa sty tril+pb sty tri2+ddpa sty tri2+rlrlpb lsr tri2+pa iny sty tri2+pe sty tri2+ddpe lda #$1f sta eia+ier sty eia+ddra sty eia+ddrb sty eia erb sta eia+todio sty tril+pc lda tri 1+pc ror a bee io100 sty tri1+pe ldx #$00 inx bne io 110 iny lrla tri 1+pe ror a bee io110 epy l$1b bee iol20 lda #$8B.byte $2c lda 1$08 sta eia+era lda ipeia ier lda #$90 sta ipcia+ier lda 1$40 sta ipcia+prb stx ipeia+ddra stx ipeia+erb stx ipeia+era lda #$4B sta ipeia+ddrb lda #$0 I ora tril+pb sta tril+pb rts 4601 fabb ===> ram-test, zeiger init. <=== 6525 triport 1: data direct.reg. e 6525 triport 1: port reg. b 6525 triport 1: data direet.reg. b 6525 triport 1: port reg. a 6525 triport 1: data direet.reg. a 6525 triport 2: port reg. a 6525 triport 1: port reg. b 6525 triport 2: rlata direet.reg. a 6525 triport 2: rlata direct.reg. b 6525 triport 2: port reg. a 6525 triport 2: port reg. c 6525 triport 2: data direet.reg. e 6526 cia: irq eontrol reg. lierl 6526 eia: data direet.reg.a (ddral 6526 cia: rlata direet.reg.b (ddrbl 6526 cia: eontrol reg. b lerbl 6526 eia: uhr: 1/10 sek.-reg. 6525 triport 1: port reg. e 6525 triport 1: port reg. e 6525 triport 1: port reg. c 6525 triport 1: port reg. e 6526 eia: eontrol reg. a leral 6526 eia: irq eontrol reg. lierl 6526 eia: irq eontrol reg. lierl 6526 eia: periph.data reg. b (prbl 6526 eia: data direet.reg.a lddral 6526 eia: eontrol reg. b (erbl 6526 eia: control reg. a leral 6526 eia: data direet.reg.b (ddrbl 6525 triport 1: port reg. b 6525 triport 1: port reg. b

610/710 os-kernal2 hard+soft ass/reass.... seite 0094 zeile adr. obj.-code source-code 4602 fabb 4603 fabb a9 00 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 46H 4615 4616 46 I 7 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 HO 46H 4645 4646 4647 4648 4649 4650 465 I 4652 4653 4654 4655 4656 4657 4658 4659 faba fabb fabd fabe fa9 I fa94 fa95 fa97 fa99 fa9b fa9e faa I faa3 faa6 faa9 faab faad faaf fabl fab3 fab5 fab7 fabb faba fabc fabe faco fac2 fac3 fac5 fac7 fac9 facb facc face facf fad I fad3 fad5 fad7 fad9 fada fadb fadd fadf fae2 fae5 faeb faea faeb faee fafo faf2 fah faf7 faf9 aa 95 02 ea 9d 00 02 9d fb 02 eb do H a9 0 I 85 01 Bd 5a 03 Bd 54 03 a9 02 Bd 58 03 Bd 52 03 c6 01 e6 01 a5 01 c9 Of fo 24 ao 02 b I 93 aa a9 55 9 I 93 bl 93 c9 55 do 15 Oa 9 I 93 b I 93 c9 aa do Oe Ba 9 I 93 cb do e4 e6 94 do eo fo d4 a6 01 ca Ba a2 ff ao fd Bd 57 03 Be 56 03 Be 55 03 ao fa 18 20 78 fb c6 ab c6 a5 a9 5d Bd 6a 03 a9 fe Bd 6b 03 ramtas lda #$00 tax pxl sta usrpok,x nop sta buf,x sta buf+$f8,x inx bne pxl lda #$01 sta i6509 sta memstr+2 sta lowadr+2 lda #$02 sta memstr sta lowadr dec i6509 sizlop inc i6509 lda i6509 cmp #$0f beq size ldy #$02 sizioo lda (sal},y tax size lda #$55 sta (sall,y lda (sal},y cmp #$55 bne size asl a sta (sal},y lda lsall,y cmp #$aa bne size txa sta (sall,y iny bne sizioo inc sah bne sizioo beq sizlop ldx i6509 dex txa ldx #$ff ldy #$fd sta hiadr+2 sty hiadr+l stx hiadr ldy #$fa clc jsr memtop dec ribuf+2 dec tapel+2 lda #$5d sta itape lda #$fe sta itape+l jmp code für 'usr'-routine vom control-file eingefügt basic input-puffer -$2ff basic input-puffer +$f8 6509 indirection register bank anfang des benutzer speichers bank anfang des system speichers addrl anfang des benutzer speichers addrl anfang des system speichers 6509 indirectian register 6509 indirection register 6509 indirectian register addrl akt. load/stare adresse addrl akt. load/store adresse addrl akt. laad/stare adresse addrl akt. load/store adresse addrl akt. load/store adresse addrl akt. laad/store adresse addrh akt. laad/stare adresse 6509 indirection register bank ende des system speichers addrh ende des system speichers addrl ende des system speichers höchste ram-adr. lesen/schreiben bank rs232 eingabe-puffer bank kassettenpuffer addrl indir. cassette addrh ~ndir. cassette

610/710 os-kernal2 hard+soft ass/reass... seite 0095 zeile adr. obj.-code source-code 4660 fafc 60 rts 4661 fafd 4662 fafd 4663 fafd ===> tabeile der standard-vektoren <=== 4665 4666 4667 4668 4669 46 70 4671 46 72 4673 4674 4675 46 76 fafd faff fboi fb03 fb05 fb07 fb09 fbob fbod fbof fb II fbl3 4677 fbl5 4678 fbl7 4679 fbl9 4680 fblb e9 fb 21 ee aa fc bf f6 ed f5 49 f5 a3 f5 a6 f6 9c H ee H 6b f9 3d " 7f f6 46f7 4c f8 77 ee 4681 fbld lf eo 4682 fblf lf eo 4683 fb21 74 f2 4684 fb23 80 f2 4685 fb25 4686 fb27 468 7 fb29 4688 fb2b 4689 fb2d 4690 fb2f 4691 fb3t 4692 4693 4694 fb34 fb34 fb34 Oa f3 97 f2 ab f2 af f2 34 f2 30 f2 6c 04 03 jmptab.word yirq.word timb.word panic.word nopen.word nclose.word nchkin.word nckout.word nclrch.word nbasin.word nbsout.word nstop.word ngetin.word nclall.word nload.ward nsave. word so.word jescrt.word jescrt.word nsecnd.word ntksa.word nrbyte.word nciout.word nuntlk.word nunlsn.word nlistn.word ntalk tabend jmp lnminv/.end.lib kernal3 interrupt-routine (irq-vectorl monitor-einsprung "break-vektor nmi-routine lnmi-vector/ log. file öffnen/befehl ausgeben logisches file schliessen eingabe-kanal öffnen ausgabe-kanal öffnen alle kanäle schliessen eingabe I char vom aktiven kanal in ac (chn-vector/ ausgabe I char auf akt. kanal stop-taste Überprüfen eingabe I char vom aktiven kanal in ac (queue-vector/ alle logischen files schliessen einlesen vom log. file abspeichern auf log. file monitor-befehl lesen Ieinsprung von usrcmd/ bearbeitung von escape-funktionen bearbeitung von escape-funktionen sekundäradr. nach listen ausgeben akt. sekundäradr. auf iec-bus ausgeben byte von iec nach ac ac auf iec-bus (mit eof-flag/ untalk auf iec-bus ausgeben unlisten auf iec-bus ausgeben listen auf iec-bus ausgeben talk auf iec-bus ausgeben ind. sprung nmi-vector (von $fffa/

610/710 os-kernal3 hard+soft ass/reass... seite 0096 zeile adr. obj.-code source-code H96 H97 4698 H99 HOO HOl 4702 4703 4704 4705 fb34 fb34 fb34 fbh fb36 fb38 fb3a fb3c fb3e fb40 4 706 fb42 60 4707 fb43 4 708 fb43 ===> adr. des filenamens eintragen <=== 85 9d b5 00 85 90 b5 01 85 91 b5 02 85 92 setnam sta fnlen lda e6509,x sta fnadr lda i6509,x sta fnadr+l lda usrpok,x sta fnadr+2 rts länge akt. filename 6509 execution register addrl akt. filename 6509 indirection register addrh akt. filename jmp code für usr -routine bank akt. filename 4709 fb43 ===>log., geräte-und sekundäradr. aktualisieren <=== HIO fb43 4711 fb43 85 9e setlfs sta la 4712 fb45 86 9f stx fa 4713 fb47 84 ao sty sa 4714 fb49 60 rts H 15 fbh 4716 fb4a 4717 fb4a ===> system-status lesen/schreiben <=== 4718 fb4a 4 719 fbh 90 18 readst bcc storst 4720 fb4c a5 9f lda fa 4721 fb4e c9 02 cmp 1$02 4722 fb50 do Ob bne readss 4723 fb52 ad 7a 03 lda rsstat 4724 fb55 48 pha 4725 fb56 a9 00 lda 1$00 4726 fb58 fo II beq statxt akt. logische Filenummer akt. primäradresse lgeräte-nummerl akt. Sekundäradresse ac in status bzw rs232-status akt. primäradresse (geräte-nummerl fehler-status setzen rs232: akt. rs232-status stack in rs232-status 4 727 fb5a 4 728 fb5a 4729 fb5a ===> fehlerflag und status setzen <=== 4 730 fb5a 4731 fb5a 8d 61 03 setmsg sta msgflg message flag 4732 fb5d 4733 fb5d 4734 fb5d ===> fehler-status setzen <=== 4 735 fb5d 4736 fb5d a5 9c 4737 fb5f 4738 fb5f readss lda status 4739 fb5f ===> ora ac in status <=== 4740 fb5f 4741 fb5f 05 9c udst ora status fb61 fb63 fb64 85 9c 60 sta status rts 4 745 fb64 47H HH 4748 4749 4750 4751 4752 fbh fb64 fb64 fb65 fb6 7 fb69 fb6b 4753 fb6b ===> ac in status bzw rs232-status <=== 48 a5 9f c9 02 do 05 storst pha lda fa cmp 1$02 bne storss i/o operation status i/o operation status i/o operation status akt. primäradresse (geräte-nummerl stack in status

610/710 os-kernal3 hard+soft ass/reass.... seite 0097 zeile adr. obj.-code source-code 4754 fb6b ===> stack in rs232-status <=== 4 755 fb6b 4 756 fb6b 68 4757 fb6c Bd Ta 03 4 758 fb6f 60 4759 fb70 4 760 fb70 statxt pla sta rsstat rts 4761 fb70 ===> stack in status <=== 4162 fb 70 4763 fb70 68 4764 fb71 85 9c 4765 fb73 60 4766 fbh 4767 fbh storss pla sta status rts 4768 fb74 ===> timeout iec-bus einlaus <=== 4169 fb 74 4770 fb74 Bd 5e 03 settmo sta timout 4771 fb77 60 rts 4112 fb18 4113 fb18 4774 fb18 ===> höchste ram-adr. lesen/schreiben <=== 4775 fb78 4176 fb18 4777 fb7a 4118 fb1d 4779 fbbo HBO fb83 HBI fb83 90 09 ad 5d 03 ae 5b 03 ac 5c 03 memtop bcc settop lda memsiz+2 ldx memsiz ldy memsiz+l rs232: akt. rs232-status ilo operation status 4782 fb83 ===> xr,yr,ac in zeiger höchste ram-adr. <=== 4183 fb83 4784 fb83 Be 5b 03 4785 fb86 Be 5c 03 4786 fb89 Bd 5d 03 HB 7 fbbc 60 4 788 fbbd 4 789 fbbd 4190 4791 4192 4193 4794 4795 fbbd fbbd fbbd fbbf fb92 fb95 4 796 fb98 4797 fb98 settop stx memsiz sty memsiz+l sta memsiz+2 rts ===> niedrigste ram-adr. lesen/schreiben <=== 90 09 ad 5a 03 ae 58 03 ac 59 03 membot bcc setbot lda memstr+2 ldx memstr ldy memstr+l 4798 fb98 ===> xr,yr,ac in zeiger anfang ram-adr. <=== 4 799 fb98 4800 fb98 4801 fb9b 4802 fb9e 4803 fba 1 60 4804 fbaz 4805 fba2 Be 58 03 Be 59 03 Bd 5a 03 setbot stx memstr sty memstr+l sta memstr+z rts ieee timeout enable flag xr,yr,ac in zeiger höchste ram-adr. bank ende des benutzer speichers addrl ende des benutzer speichers addrh ende des benutzer speichers addrl ende des benutzer speichers addrh ende des benutzer speichers bank ende des benutzer speichers xr,yr,ac in zeiger anfang ram-adr. bank anfang des benutzer speichers addrl anfang des benutzer speichers addrh anfang des benutzer Speichers addrl anfang des benutzer Speichers addrh anfang des benutzer speichers bank anfang des benutzer speichers 4806 fbaz ===> standard-vektoren für jsr und interrupts einrichten <=== 4801 U08 4809 4810 4811 fba2 fba2 fba4 fba6 fbab a2 fd ao fa a9 Of 18 res tor ldx #$fd ldy ll$fa lda ll$0f clc

610/710 os-kernal3 hard+soft ass/reass...... seite 0098 zeile adr. obj.-code source-code 4812 fba9 4B13 fba9 4814 fba9 ===> lesen/schreiben der akt. system-ram-vektoren <=== 4B15 fba9 4816 fba9 86 93 vector stx sal addrl akt. load/store adresse 4817 fbab 84 94 sty sah addrh akt. load/store adresse 481B fbad a6 01 ldx i6509 6509 indirection register 4819 fbaf B5 01 sta i6509 6509 indirection register 4820 fbbl 90 Oa bcc vect50 4821 fbb3 ao 33 ldy 1$33 4B22 fbb5 b9 00 03 vect20 lda cinv,y addrl irq vector 4823 fbb8 91 93 sta lsal},y addrl akt. load/store adresse 4824 fbba 88 dey 4825 fbbb 10 fb bpl vect20 4826 fbbd ao 33 vect50 ldy 1$33 4827 fbbf bl 93 vect60 lda I sal J, y addrl akt. load/store adresse 4828 fbcl 99 00 03 sta cinv,y addrl irq vector 4829 fbc4 BB dey 4830 fbc5 10 fb bpl vect60 4831 fbc7 86 01 stx i6509 6509 indirection register 4832 fbc9 60 rts 4B33 fbca 4B34 fbca 4835 fbca Be fb 03 vreset stx evect addrl warmstart-vector 4B36 fbcd Be f9 03 sty evect+f addrh warmstart-vector 4837 fbdo a9 5a lda l$5a 4B3B fbd2 Bd fb 03 sta evect+3 warmstart-variable 4839 fbd5 60 rts 4840 fbd6 4841 fbd6 4B42 fbd6 ===> interrupt-routine I irq} <=== 4843 fbd6 4844 fbd6 48 nirq pha 4845 fbd7 Ba txa 4846 fbdb 48 pha 4847 fbd9 98 tya 4848 fbda 48 pha 4B49 fbdb ba tsx 4B50 fbdc bd 04 01 lda stack+4,x 6509 cpu-stack 4851 fbdf 29 10 and #$10 4852 fbel do 03 bne brkirq sprung auf brk-vector I im irq} 4853 fbe3 6c 00 03 jmp lcinv} addrl irq vector 4854 fbe6 4855 fbe6 4856 fbe6 6c 02 03 brkirq jmp lcbinvj sprung auf brk-vector I im irq J 4857 fbe9 4B58 fbe9 4859 fbe9 ===> interrupt-routine lirq-vector} <=== 4860 fbe9 4861 fbe9 a5 01 yirq lda i6509 6509 indirection register 4862 fbeb 48 pha 4863 fbec d8 cld 4864 fbed ad 07 de lda trif+air 6525 triport 1: active irq reg. 4865 fbfo do 03 bne irqooo 4866 fbfz 4c az fc jmp prendn irq-ende, stack nach i6509,yr,xr.ac 4867 fbf5 4868 fbf5 4869 fbf5 c9 10 i rqooo cmp #$1 0

610/710 os-kernal3 hard+soft ass/reass.... seite 0099 zeile adr. obj.-eode source-eode 4B70 fbf7 fo 03 4B71 fbf9 4e 5b fc 4872 fbfc 4B13 fbfe beq irq002 jmp irqioo 4B74 fbfc ad 01 dd irq002 lda acia+srsn 6551 acia: reset-write und status read-reg. 4B 15 fbff aa tax 48 76 feoo 29 60 and #$60 4B77 fe02 ab tay 4B7B fe03 4d 7b 03 eor dcdsr rs232: letzter ded/dsr wert 4B19 fc06 fo Od beq irq004 4BBO fcob 9B tya 48BI fe09 Bd 1b 03 sta dcdsr rs232: letzter dcd/dsr wert 48B2 fcoe Od 7a 03 ora rsstat rs232: akt. rs232-status 4BB3 feof Bd 1a 03 sta rsstat rs232: akt. rs232-status 48B4 fcl2 4 c 9f fc jmp irq900 4BB5 fcl5 48B6 fcl5 48B1 fcl5 48BB fcl6 4BB9 feib 4890 fc Ia rs232: eingabe end zeiger 4891 fcld 4B92 feie rs232: eingabe start zeiger 4B93 fc21 4894 fc23 4895 fc25 4896 fc27 rs232: eingabe end zeiger 489 7 fe2a 4B9B fc2b 4B99 fe2d 4900 fc2f 4901 fe32 4902 fe35 4903 fc37 4904 fc38 4905 fc3a 4906 fc3d 4907 fc40 4908 4909 4910 4 911 4912 4913 4 914 4915 4916 4917 491B 4919 4920 4921 4922 4923 fc43 fc45 fc4 7 fc4a fde fc4e fc50 fe52 fc55 fc58 fe5b fc5b fe5b fc5d fc5f fc62 Ba 29 OB fo 26 ae 7d 03 cb cc 7c 03 do 04 a9 OB do 13 Be 7d 03 BB a6 ab 86 01 ae 01 dd ad 00 dd 91 a6 Ba 29 01 Od 7a 03 Bd 7a 03 ad 0 I dd 29 10 fo 11 ad 02 dd 29 Oe e9 04 do 08 a9 f3 2d 02 dd Bd 02 dd 4c 9f fc c9 08 do Oa ad Od db 58 irq004 txa and #$08 beq irqoio ldy ridbe iny cpy ridbs bne irq005 lda #$08 bne irq001 irq005 sty ridbe dey ldx ribuf+2 stx i6509 ldx acia+srsn lda aeia+drsn sta lribufl.y txa and #$01 irq007 ora rsstat sta rsstat irqoio lda acia+srsn and #$10 beq irq090 lda acia+cdr and #$Oe cmp #$04 bne irq090 lda #$f3 and acia+cdr sta acia+cdr irq090 jmp irq900 irqioo cmp #$08 bne irq110 lda ipcia+ier eli bank rs232 eingabe-puffer 6509 indirection register 6551 acia: reset-write und status read-reg. 6551 aeia: data reg. write transmit, read = reeeive addrl rs232 eingabe-puffer rs232: akt. rs232-status rs232: akt. rs232-status 6551 aeia: reset-write und status read-reg. 6551 acia: command-reg. 6551 ac~a: command-reg. 6551 acia: command-reg. 6526 cia: irq control reg. licrl

610/710 os-kernal3 hard+soft ass/reass.... seite 0100 zeile adr. obj. -code source-code 49Z4 fc63 zo 48 fd jsr ipserv 4925 fc66 4c 9f fc jmp irq900 49Z6 fc69 49Z7 fc69 49Z8 fc69 58 irq 110 cli 49Z9 fc6a c9 04 cmp #$04 4930 fc6c do Oe bne irqzoo 4931 fc6e ad Od dc lda cia+icr 6SZ6 cia: irq control reg. I icr J 493Z fc71 Od 69 03 ora alarm flag für irq von 6SZ6 4933 fc74 Bd 69 03 sta alarm flag für irq von 6SZ6 4934 fc77 4c 9f fc jmp irq900 4935 fc7a 4936 fc7a 4937 fc7a c9 oz irqzoo cmp #$0Z 493B fc 7c do 03 bne irq300 tastatur lesen, ti steilen im irq 4939 fc7e 4c 9f fc jmp irq900 4940 fcbi 4941 fcbi 4942 fcbi ===> tastatur lesen, ti stellen im irq <=== 49H fcbi zo 13 eo irq300 jsr jkey tastatur lesen/in puffer schreiben 4945 fc84 zo 79 f9 jsr udtim system-zeit aktualisieren 4943 fcbi 4946 fcb7 ad 01 de lda tril+pb 6SZS triport 1: port reg. b 4947 fcba 10 09 bpl irq310 4948 fcbc ao 00 ldy #$00 4949 fcbe Be 75 03 sty cas I cassette switchflag 4950 fc91 09 40 ora #$40 4951 fc93 do 07 bne irq3zo 49SZ fc9s ac 75 03 irq310 ldy cas I cassette swi tchflag 4953 fc9b do OS bne irq900 4954 fc9a Z9 bf and #$bf 4955 fc9c Bd 01 de irq3zo sta tri l+pb 6525 triport 1: port reg. b 4956 fc9f Bd 07 de irq900 sta tril+air 6525 triport 1: active irq reg. 4957 fcaz 495B fca2 4959 fcaz ===> irq-ende, stack nach i6509,yr,xr,ac <=== 4960 fcaz 4961 fca2 6B prendn pla 4962 fca3 85 01 sta i6509 6509 indirection register 4963 fcas 4964 fca5 4965 fca5 ===> irq-ende, stack nach yr,xr,ac <=== 4966 fca5 4967 fca5 68 prend pla 4968 fca6 ab tay 4969 fca 7 6B pla 49 70 fcab aa tax 4971 fca9 68 pla 49 72 fcaa 4973 fcaa 4974 fcaa 49 75 fcaa ===> nmi-routine lnmi-vectorj <=== 4976 fcaa 40 panic rti 4977 fcab 4978 fcab 4979 fcab ad 00 OB iprqst lda ipb+ipccmd coprozessor-puffer: command 4980 fcae 29 7f and #$7f 4981 fcbo ab tay

610/710 os-kernal3 hard soft ass/reass..... seite 0101 zeile adr. obj.-code source-code 49B2 fcbl 20 21 fe 49B3 fcb4 a9 04 49B4 fcb6 2d 01 db 49B5 fcb9 do fo 49B6 fcbb a9 OB 49B7 fcbd Od 01 db 49BB fcco Bd 01 db 49B9 fcc3 ea 4990 fcc4 ad 01 db 4991 fcc7 aa 4992 fccb 29 04 4993 fcca fo Oe 4994 4995 4996 4997 499B 4999 5000. 500 I 5002 5003 5004 5005 5006 5007 50 0B 5009 5010 50 II 5012 5013 50" 5015 5016 5017 501B 5019 5020 5021 5022 5023 5024 5025 5026 5027 502B 5029 5030 5031 5032 5033 5034 5035 5036 5037 503B 5039 fccc fccd fccf fcd2 fcd3 fcd4 fcd5 fcd6 fcdb fcda fcdd fceo fce3 fce6 fce9 fceb fcee fcfo fcfl fcf2 fcf3 fcf4 fcf7 fcfa fcfc fcff fd02 fd05 fd07 fd09 fdob fdoe fdll fdl4 fd 17 fdla fdlc fd lf fd22 fd25 fd26 fd29 fd2b fd2d fd2f fd32 Ba 49 OB Bd 01 db Ba ea ea ea do d3 a9 ff Bd 02 db ad oo OB Bd 00 db 20 OB fe ad 01 db 29 bf 8d 01 db 09 40 58 ea ea ea 8d 01 db 20 fd a9 00 8d 02 db 20 f6 fd 20 e6 fd ao oo fo ld a9 ff 8d 02 db b9 05 08 8d 00 db 20 ff fd 20.. fd a9 oo 8d 02 db 20 (6 fd 20 e6 fd c8 cc 03 OB do de ao oo (0 13 20 ff fd 20 ee fd jsr getpar lda 1$04 and ipcia prb bne iprqst lda #$OB ora ipcia prb sta ipcia+prb nop lda ipcia prb tax and #$04 beq iprioo txa eor I$0B sta ipcia prb txa nop nop nop bne iprqst ipr I 00 lda #$ff sta ipcia ddra lda ipb+ipccmd sta ipcia pra jsr frebus lda ipcia prb and #$bf sta ipcia prb ora #$40 cli nop nop nop sta ipcia prb jsr waithi lda #$00 sta ipcia ddra jsr acklo jsr waitlo ldy #$00 beq ipr250 ipr200 lda #$ff sta ipcia ddra 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prb} 6526 cia: periph.data reg. b (prbl 6526 cia: data direct.reg.a (ddral coprozessor-puffer: command 6526 cia: periph.data reg. a (pral 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl 6526 cia: data direct.reg.a (ddral 6526 cia: data direct.reg.a (ddral lda ipb ipcdat,y coprozessor-puffer: data puffer sta ipcia+pra 6526 cia: periph.data reg. a (pral jsr ackhi jsr waithi lda #$00 sta ipcia ddra jsr acklo jsr waitlo iny ipr250 cpy ipb ipcin bne ipr200 ldy #$00 beq ipr350 ipr300 jsr ackhi jsr waithi 6526 cia: data direct.reg.a (ddral coprozessor-puffer: # input bytes

610/710 os-kernal3 hard+soft ass/reass... seite 0102 zeile adr. obj.-code source-code 5040 fd35 504 I fd3b 5042 fd3b 500 fd3e 50H fd4 I 5045 fd42 ad 00 db 99 05 OB 20 f6 fd 20 e6 fd cb cc 04 OB 5046 fdh do eb 5047 fd47 60 5048 fd48 5049 fd4b 5050 fd48 5051 fd4a 5052 fd4d 5053 fd50 5054 fd53 5055 fd55 5056 fd56 5057 fd59 505B fd5a 5059 fd5b 5060 fd5c 5061 fd5f 5062 fd62 5063 fd63 5064 fd66 5065 fd69 5066 fd6c 5067 fd6f a9 00 Bd 02 db ad 00 db Bd 00 OB 29 7f ab 20 21 fe 9B oa ab b9 10 OB Bd 01 OB cb b9 10 OB Bd 02 OB 20 ff fd 20 e6 fd ao oo cc 03 OB fo 15 506B fd71 5069 fd74 5070 fd76 20 f6 fd 5071 fd79 20 ee fd 5072 fd7c ad 00 db 5073 fd7f 99 05 OB 5074 fdb2 20 ff fd 5075 fdb5 20 e6 fd 5076 fdbb cb 5077 fdb9 do e6 507B fdbb 2c 00 OB 5079 fdbe 30 33 50BO fd90 a9 fd 50B I fd92 48 50B2 fd93 a9 9B 50B3 fd95 4B 50B4 fd96 6c 01 OB 50B5 50B6 50B 7 50BB 50B9 5090 5091 5092 5093 509, 5095 5096 5097 fd99 fd99 fd99 fd9c fd9e fdao fda3 fda5 fdab fdab fdae fdbl fdb4 20 f6 fd ao oo fo ld 20 ee fd a9 ff Bd 02 db b9 05 OB Bd 00 db 20 ff fd 20 e6 fd a9 00 lda ipcia+pra 6526 cia: periph.data reg. a lpraj sta ipb+ipcdat.y coprozessor-puffer: data puffer jsr acklo jsr waitlo iny ipr350 cpy ipb+ipcout coprozessor-puffer: II output bytes bne ipr300 rts ipserv lda 11$00 sta ipcia+ddra lda ipcia+pra sta ipb+ipccmd and 11$7f tay jsr getpar tya asl a tay lda ipjtab,y sta ipb+ipcjmp iny 6526 cia: data direct.reg.a lddra) 6526 cia: periph.data reg. a lpraj coprozessor-puffer: command coprozessor-jump tabeile coprozessor-puffer: jump addrl lda ipjtab,y coprozessor-jump tabeile sta ipb+ipcjmp+l coprozessor-puffer: jump addrh jsr ackhi jsr wai tlo ldy 11$00 ipsioo cpy ipb+ipcin beq ips200 jsr acklo jsr waithi coprozessor-puffer: # input bytes lda ipcia+pra 6526 cia: periph.data reg. a (pra) sta ipb+ipcdat,y coprozessor-puffer: data puffer jsr ackhi jsr waitlo iny bne ipsioo ips200 bit ipb+ipccmd bmi ips500 lda ll$fd pha lda II$9B pha coprozessor-puffer: command jmp lipb+ipcjmp) coprozessor-puffer: jump addrl ips300 jsr acklo ldy 11$00 beq ips350 ips310 jsr waithi lda #$ff sta ipcia ddra 6526 cia: data direct.reg.a (ddraj lda ipb+ipcdat,y coprozessor-puffer: data puffer sta ipcia+pra jsr ackhi jsr waitlo lda #$00 6526 cia: periph.data reg. a lpraj

610/710 os-kernal3 hard+soft ass/reass.... seite 0103 zeile adr. obj.-code source-code 509B fdb6 Bd 02 db sta ipcia+ddra 6526 cia: data direct.reg.a (ddra} 5099 fdb9 20 f6 fd jsr acklo 5100 fdbc cb iny 5101 fdbd cc 04 OB ips350 cpy ipb+ipcout coprozessor-puffer: # output bytes 5102 fdco do de bne ips310 5103 fdc2 60 ips400 rts 5104 fdc3 5105 fdc3 5106 fdc3 a9 fd ips500 lda #$fd 5107 fdc5 4B pha 51 0B fdc6 a9 ce lda #$ce 5109 fdcb 48 pha 5110 fdc9 20 11 fe jsr getbus 5111 fdcc 6c 01 OB jmp (ipb+ipcjmp} coprozessor-puffer: jump addrl 5112 fdcf 5113 fdcf 5114 fdcf 20 OB fe ips600 jsr frebus 5115 fdd2 ad 04 OB lda ipb+ipcout coprozessor-puffer: # output bytes 5116 fdd5 Bd 03 OB sta ipb+ipcin coprozessor-puffer: # input bytes 5117 fddb Bd 00 OB sta ipb+ipccmd coprozessor-puffer: command 511B fddb a9 00 lda #$00 5119 fddd Bd 04 OB sta ipb+ipcout coprozessor-puffer: # output bytes 5120 fdeo 20 ab fc jsr iprqst 5121 fde3 4c c2 fd jmp ips400 5122 fde6 5123 fde6 5124 fde6 ad 01 db waitlo lda ipcia+prb 6526 cia: periph.data reg. b (prb} 5125 fde9 29 04 and #$04 5126 fdeb do f9 bne wai tlo 5127 fded 60 rts 5128 fdee 5129 fdee 5130 fdee ad 01 db waithi lda ipcia+prb 6526 cia: periph.data reg. b (prbj 5131 fdfl 29 04 and #$04 5132 fdf3 fo f9 beq waithi 5133 fdf5 60 rts 5134 fdf6 5135 fdf6 5136 fdf6 ad 01 db acklo lda ipcia+prb 6526 cia: periph.data reg. b (prbj 5137 fdf9 29 f7 and #$f7 5138 fdfb Bd 01 db sta ipcia+prb 6526 cia: periph.data reg. b (prb} 5139 fdfe 60 rts 5140 fdff 5141 fdff 5142 fdff a9 OB ackhi lda #$08 5143 feo 1 Od 01 db ora ipcia +prb 6526 cia: periph.data reg. b (prb} 51H fe04 Bd 01 db sta ipcia+prb 6526 cia: periph.data reg. b (prb} 5145 feo 7 60 rts 5146 feob 5147 feob 5148 feob ad 01 de frebus lda tri1+pb 6525 triport 1: port reg. b 5149 feob 29 ef and #$ef 5150 feod Bd 01 de sta tri1+pb 6525 triport 1: port reg. b 5151 fe10 60 rts 5152 fe 11 5153 fe 11 5154 fe 11 ad 01 db getbus lda ipcia+prb 5155 fe 14 29 02 and #$02 6526 cia: periph.data reg. b (prb}

610/710 os-kernal3 hard+soft ass!reass... seite 0104 zeile adr. obj.-code source-code beq getbus lda tri I +pb ora #$10 sta tril+pb rts 5156 fel6 fo f9 5157 feib ad 01 de 5158 felb 09 10 5159 feld Bd 01 de 5160 fe20 60 5161 5162 5163 fe21 fe21 fe21 b9 10 09 5164 fe24 H 5165 fe25 29 Of 5166 fe27 Bd 03 OB 5167 fe2a 68 5168 fe2b 4a 5169 fe2c 4a 5170 fe2d 4a 5171 fe2e 4a 5172 fe2f Bd 04 OB 5173 fe32 60 5174 fe33 5175 fe33 5 I 76 fe33 a2 ff ipcgo 5177 fe35 86 01 5178 fe37 ad 01 de 5 I 79 fe3a 29 ef 5180 fe3c Bd 01 de 5181 fe3f ea 5182 fe40 ad 01 db 5183 fe43 6a 5184 feh bo 01 5185 feh 60 5 I 86 fe4 7 5187 fe47 5188 fe47 a9 00 ipcgx lda #$00 5189 fe49 78 sei 5190 fe4a Bd 01 db 5191 fe4d a9 40 5192 fe4f ea 5193 fe50 ea 5194 fe51 ea 5195 fe52 ea getpar lda ipptab,y pha and #$0f sta ipb+ipcin pla lsr a lsr a lsr a lsr a sta ipb+ipcout rts ldx #$ff stx i6509 lda tri I +pb and #$ef sta tril+pb nop lda ipcia+prb ror a bcs ipcgx rts sta ipcia+prb lda #$40 nop nop nop nop 5196 fe53 Bd 01 db sta ipcia+prb 5197 fe56 58 cli 5198 fe57 4c 57 fe iploop jmp iploop 5 I 99 fe5a 5200 fe5a 5201 fe5a 6c 6a 03 xtape jmp (itape} 5202 fe5d 5203 fe5d 5204 fe5d ===> pla, pla, ausg. "i/0 error: 5 <=== 5205 fe5d 5206 fe5d 68 520 7 fe5e 68 5208 5209 5ZIO fe5f fe62 fe6z 4c 45 f9 6525 triport 1: port reg. b 6525 triport 1: port reg. b coprozessor-parameter tabeile coprozessor-puffer: # input bytes coprozessor-puffer: # output bytes 6509 indirection register 6525 triport 1: port reg. b 6525 triport 1: port reg. b 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl 6526 cia: periph.data reg. b (prbl addrl indir. cassette nocass pla pla jmp error5 ausgabe "i/o error: 5" 5211 fe62 ===> "stah"-vektor nach "sah"-vektor und bank# nach i6509 <=== 5212 fe62 5213 fe62 a5 9a rd300 lda stah addrh anfang akt. load/store

610/710 os-kernal3 hard+soft ass/reass.... seite 0105 zeile adr. obj.-code source-code 5214 fe64 5215 fe66 5216 fe6b 5217 fe6a 521B fe6c 5219 fe6e 5220 fe70 5221 fe71 5222 fe71 B5 94 a5 99 B5 93 a5 9b B5 95 B5 01 60 sta sah lda stal sta sal lda stas sta sas sta i6509 rts 5223 fe71 ===> vektor 'sal - 'eal <=== 5224 fe 71 5225 5226 5227 522B 5229 5230 5231 5232 5233 5234 5235 5236 5237 523B 5239 5240 5241 5242 5243 fe71 fe72 feh fe76 fe7b fe7a fe7c fe7e fe7f fe7f fe7f feb1 feb3 feb5 feb7 feb9 febb febd febf 3B a5 93 e5 96 a5 94 e5 97 a5 95 e5 9B 60 e6 93 do Oe e6 94 do Oa e6 95 a5 95 B5 01 a9 02 B5 93 cmpste sec lda sal sbc eal lda sah sbc eah lda sas sbc eas rts incsal inc sal bne incr20 inc sah bne incr20 inc sas lda sas sta i6509 lda #$02 s ta sal 52H fe91 60 incr20 rts 5245 fe92 5246 fe92 5247 fe92 5248 fe92 5249 fe92 5250 fe94 5251 fe96 5252 fe9b 5253 fe9a 5254 fe9c 5255 fe9d 5256 fe9d 5257 fe9d 525B fe9f 5259 feao ===> filename 'bank x in ac, offset yr <=== a6 01 a5 92 B5 01 b 1 90 B6 01 60 B5 01 Ba 1B 5260 feal 69 02 5261 fea3 90 01 5262 fea5 cb 5263 fea6 aa 5264 fea 7 9B 5265 5266 5267 526B 5269 5270 5271 feab fea9 feaa feab feae febo feb2 48 Ba 48 20 19 ff a9 fe 91 ac OB fnadry ldx i6509 lda fnadr+2 sta i6509 lda (fnadr), y stx i6509 rts txjmp sta i6509 txa clc adc #$02 bcc txjmp1 iny txjmp 1 tax tya pha txa pha jsr ipinit lda #$fe sta (ipoint),y exsub php addrh akt. load/store adresse addrl anfang akt. load/store addrl akt. load/store adresse bank anfang akt. load/store bank akt. load/store adresse 6509 indirection register addrl akt. load/store adresse addrl ende akt. load/store addrh akt. load/store adresse addrh ende akt. load/store bank akt. load/store adresse bank ende akt. load/store addrl akt. load/store adresse addrh akt. load/store adresse bank akt. load/store adresse bank akt. load/store adresse 6509 indirection register addrl akt. load/store adresse 6509 indirection register bank akt. filename 6509 indirection register addrl akt. filename 6509 indirection register 6509 indirection register 'ipoint' auf $0100, yr=$ff addrl ram indirekt-painter

610/710 os-kernal3 hard+soft ass/reass.... seite 0106 zeile adr. obj.-code source-code 5272 feb3 7B sei 5273 feb4 48 pha 5214 feb5 Ba txa 5275 feb6 48 pha 5276 feb7 9B tya 5277 febb 48 pha 527B feb9 20 19 ff jsr ipini t ipoint auf $0100, yr=$ff 5279 febc ab tay 52BO febd a5 00 lda e6509 6509 execution register 52BI febf 20 2a ff jsr putag ac nach lipoint},y yr=yr-1 52B2 fec2 a9 04 lda tt$04 52B3 fec4 a2 ff ldx tt$ff 52B4 fec6 20 24 ff jsr putaxs xr, ac nach lipoint},y yr=yr-2 52B5 fec9 ba tsx 52B6 feca bd 05 01 lda stack+5,x 6509 cpu-stack 52B7 fecd 3B sec 52BB fece e9 03 sbc tt$03 52B9 fedo 48 pha 5290 fedl bd 06 01 lda stack+6,x 6509 cpu-stack 5291 fed4 e9 00 sbc tt$00 5292 fed6 aa tax 5293 fed7 6B pla 5294 fedb 20 24 ff jsr putaxs xr, ac nach (ipoint},y yr=yr-2 5295 fedb 9B tya 5296 fedc 3B excomm sec 5297 fedd e9 04 sbc #$04 529B fedf Bd ff 01 sta buf-1 basic input-puffer -1 5299 fee2 ab tay 5300 fee3 a2 04 ldx tt$04 5301 fee5 6B exsuio pla 5302 fee6 cb iny 5303 fee7 91 ac sta lipoint},y addrl ram indirekt-painter 5304 fee9 ca dex 5305 feea do f9 bne exsuio 5306 feec ac ff 01 ldy buf-1 basic input-puffer -1 5307 feef a9 2d lda tt$2d 530B fefl a2 ff ldx tt$ff 5309 fef3 20 24 ff jsr putaxs xr, ac nach lipoint},y yr=yr-2 5310 fef6 6B pla 5311 fefl 68 pla 5312 fefb ba tsx 5313 fef9 Be ff 01 stx buf-1 basic input-puffer -I 5314 fefc 9B tya 5315 fefd aa tax 5316 fefe 9a txs 5317 feff a5 0 I lda i6509 6509 indirection register 5318 ffoi 4c f6 ff jmp kgbye ac in 6509 execution register 5319 ff04 5320 ff04 5321 ff04 ea nop 5322 ff05 5323 ff05 5324 ff05 ===> rückkehr-adresse wenn rts <=== 5325 ff05 5326 H05 08 excrts php 532 7 ff06 08 php 5328 ff07 78 sei 5329 ff08 48 pha

610/710 os-kernal3 hard+soft ass/reass.... seite 0107 zeile adr. obj.-code source-code 5330 ff09 Ba txa 5331 ffoa 48 pha 5332 ffob 98 tya 5333 ffoc 48 pha 5334 ffod ba tsx 5335 ffoe bd 06 01 lda stack+6,x 6509 cpu-stack 5336 ffll 85 01 sta i6509 6509 indirection register 5337 ffl3 20 19 ff jsr ipinit ipoint auf $0100, yr=$ff 5338 ffl6 4c dc fe jmp excomm 5339 ffl9 5340 ffl9 5341 ffl9 ===> ipoint auf $0100, yr=$ff <=== 5342 ffl9 5343 ffl9 ao 01 ipinit ldy 1$01 53H fflb 84 ad sty ipoint+l addrh ram indirekt-painter 5345 ffld 88 dey 5346 ffle 84 ac sty ipaint addrl ram indirekt-painter 5341 ffzo BB dey 534B ff21 bl ac lda lipaintl,y addrl ram indirekt-painter 5349 ff23 60 rts 5350 ff24 5351 ff24 5352 ff24 ===> xr, ac nach I ipoint I, y yr=yr-2 <=== 5353 ff24 5354 ff24 48 putaxs pha 5355 ff25 Ba txa 5356 ff26 9 I ac sta I ipoint I, y addrl ram indirekt-painter 5357 ffzb 88 dey 5358 ffz9 68 pla 5359 ff2a 5360 ffza 5361 ff2a ===> ac nach lipointl,y yr=yr-1 <=== 5362 ff2a 5363 ff2a 9 I ac putag sta I ipoint I, y addrl ram indirekt-painter 5364 ff2c 88 dey 5365 ff2d 60 rts 5366 ff2e 5367 ff2e 5368 ffze 68 pla 5369 ff2f ab tay 5370 ((30 68 pla 5371 ff3 I aa tax 5372 ((32 68 pla 5373 ff33 28 plp 5374 ff34 60 rts 5375 ff35 5376 ff35 5377 ff35 08 php 5378 ((36 6c fa ff jmp lhanmil 6509 hardware-nmi-vektor 5379 ff39 5380 ff39 5381 ((39 00 brk 5382 ff3a ea nop 5383 ff3b 60 rts 5384 ff3c 53B5 ff3c 5386 ff3c 58 cli 5387 ff3d 60 rts

6101710 os-kernal3 hard+soft asslreass...... seite 0108 zeile adr. obj.-code source-code 5388 ff3e 5389 ff3e 5390 ff3e 5391 ff3e 5392 ff3e = $2e 5393 ff6c 5394 ff6c 5395 ff6c 4c 9d fe knwsys jmp txjmp transfer-of-execution jumper 5396 ff6f 5397 ff6f 5398 ff6f 4c ca fb kvrese jmp vreset netz einlaus reset-vector 5399 ff72 5400 ff72 5401 ff72 4c 33 fe kipcgo jmp ipcgo mon-befehl z umsch. auf coprozessor 5402 ff75 5403 ff75 5404 ff75 4c 22 eo kfunky jmp jfunky vector für Funktionstasten 5405 ff78 5406 ff78 5407 ff78 4c ab fc kipcrq jmp iprqst vector für ipc-anforderung HOB ff7b 5409 ff7b 5410 ff7b 4c fb f9 kioini jmp ioinit initialisierung ein-lausgabe 5411 ff7e 5412 ff7e 5413 ff7e 4c 04 eo kcint jmp jcint initialisierung bildschirm 5414 ff81 5415 ff81 5416 ff81 4c 00 H kalloc jmp tttop allocation-routine 54 17 ff84 5418 ff84 5419 ff84 4c a9 fb kvecto jmp vector ein-lausgabe-vectoren lesen I schreiben 5420 ff8 7 5421 ff87 5422 ff87 4c a2 fb kresto jmp restor standard ein-lausgabe-vectoren setzen 5423 ffba 5424 ff8a 5425 ff8a 4c 60 f6 klkups jmp lkupsa geräteadr. Über sekundäradr. suchen 5426 ff8d 5427 ff8d 5428 ff8d 4c 78 f6 klkupl jmp lkupla geräte- sekundäradr. Über log. file# suchen 5429 ff90 5430 ff90 5431 ff90 4c 5a fb kstmsg jmp setmsg meldung des operat.syst. ausgeben 5432 ff93 5433 ff93 5434 ff93 6c 24 03 ksecnd jmp lisecndl auf iec-bus sekundäradr. nach listen ausgeben 5435 ff96 5436 ff96 5437 ff96 6c 26 03 ktksa jmp (itksaj auf iec-bus sekundäradr. nach talk ausgeben 5438 ff99 5439 ff99

610/710 os-kernal3 hard+soft ass/reass... seite 0109 zeile adr. obj.-code source-code 5440 ff99 4c 78 fb kmemtp jmp memtop 5H I ff9c 5H2 ff9c 5443 ff9c 4c Bd fb kmembt jmp membot 54H ff9f 5H5 ff9f 5446 ff9f 4c 13 eo kscnky jmp jkey 5H 7 ffa2 5H8 ffa2 5449 ffa2 4c 74 fb ksetmo jmp settmo 5450 ffa5 5451 ffa5 5452 ffa5 6c 28 03 kacptr jmp (iacptrj 5453 ffab 5454 ffab 5455 ffab 6c 2a 03 kciout jmp (icioutj 5456 ffab 5457 ffab 5458 ffab 6c 2c 03 kuntlk jmp (iuntlkl 5459 ffae 5460 ffae 5461 ffae 6c 2e 03 kunlsn jmp (iunlsn} 5462 5463 5464 ffb! ffb! ffb! 6c 30 03 klistn jmp (ilistnl 5465 ffb4 5466 ffb4 5467 ffb4 6c 32 03 ktalk jmp (italk} 5468 ffb7 5469 ffb7 5470 ffb7 4c 4a fb kreast jmp readst 5471 ffba 54 72 ffba 5473 ffba 4c 43 fb kstlfs jmp setlfs 5474 ffbd 54 75 ffbd 5476 ffbd 4c 34 fb kstnam jmp setnam 54 77 ffco 5478 ffco 5479 ffco 6c 06 03 kopen jmp (iopen} 5480 ffc3 5481 ffc3 5482 ffc3 6c OB 03 kclose jmp (iclose} 5483 ffc6 5484 ffc6 5485 ffc6 6c Oa 03 kchkin jmp (ichkinj 5486 ffc9 5487 ffc9 5488 ffc9 6c Oe 03 kckout jmp (ickout} 5489 ffcc 5490 ffcc 5491 ffcc 6c Oe 03 kclrch jmp (iclrch} 5492 ffcf 5493 ffcf höchste speichergrenze lesen/schreiben unterste speichergrenze lesen/schreiben tastatur abfragen zeitüberwachung iec-bus ein ein byte von iec-bus nach accu ein byte aus accu auf iec-bus untalk auf iec-bus ausgeben unlisten auf iec-bus ausgeben listen auf iec-bus ausgeben talk auf iec-bus ausgeben ein/ausgabe-status lesen I schreiben log. filenummer, geräte- und sek.adr. eintragen länge und adr. des filenamens eintragen log. file Öffnen/befehl ausgeben logisches file schliessen eingabekanal öffnen ausgabekanal öffnen ein-/ausgabekanal schliessen

610/710 os-kernal3 hard+soft ass!reass... seite 0110 zeile adr. obj.-code source-code 5494 ffcf 6c 10 03 kbasin jmp libasinl 5495 ffd2 5496 ffd2 5497 5498 ffd2 ffd5 6c 12 03 kbsout jmp libsoutl 5499 ffd5 5500 ffd5 6c Ia 03 kload jmp (iload} 5501 5502 5503 ffd8 ffd8 ffd8 6c lc 03 ksave jmp lisavel 5504 ffdb 5505 ffdb 5506 ffdb 4c Oe f9 ksttim jmp settim 550 7 ffde 5508 ffde 5509 ffde 4c e6 f8 krdtim jmp rdtim 5510 ffel 5511 ffel 5512 ffel 6c 14 03 kstop jmp listop} 5513 ffe4 5514 ffe4 5515 ffe4 6c 16 03 kgetin jmp ligetin} 5516 ffe7 5517 ffe7 5518 ffe7 6c 18 03 kclall jmp liclalll 5519 ffea 5520 ffea 5521 ffea 5522 ffed 5523 ffed 4c 79 f9 kudtim jmp udtim 5524 ffed 4c 10 eo kscror jmp jscror 5525 fffo 5526 fffo 5527 fffo 4c 19 eo kplot jmp jplot 5528 fff3 5529 fff3 5530 fff3 4c lc eo 5531 fff6 5532 fff6 jmp jiobas 5533 fff6 ===> ac in 6509 execution register <=== 5534 fff6 5535 fff6 85 00 5536 fff8 60 5537 fff9 5538 fff9 kgbye sta e6509 rts 5539 fff9 ===> prüfbyte rom $eooo-$ffff <=== eingabe I char vom aktiven kanal in ac (chn-vector} ausgabe I char auf akt. kanal einlesen vom log. file abspeichern auf log. file interne uhr stellen interne uhr ablesen stop-taste lesen eingabe I char vom aktiven kanal in ac (queue-vectorl alle logischen files schliessen interne uhr bedienen bildschirm Cursor-koordinaten lesen/schreiben basisadr. i/o-gerät nach xr/yr 6509 execution register 5540 fff9 5541 fff9 01 checkf.byte $01 5542 fffa 550 fffa 5544 fffa ===> 6509 hardware-nmi-vektor <=== 5545 fffa 5546 fffa 31 fb hanmi.word tabend ind. sprung nmi-vector (von $fffa} 55H fffc 5548 fffc 5549 fffc ===> 6509 hardware-reset-vektor <===

610/710 os-kernal3 hard soft ass/reass... seite 0111 zeile adr. obj.-code source-code 5550 fffc 5551 fffc 97 f9 hares.ward start 5552 fffe 5553 fffe 5554 fffe ===> 6509 hardware-irq-vektor 5555 fffe 5556 fffe d6 fb hairq.ward nirq 5557 5558.end 5559 5560.end <=== system reset routine interrupt-routine (irq) fehler in pass I fehler in pass 2 assemblierung ende

5. TEIL CROSSREFERENZLISTE 2 CBH 6101710 OPERATINGSYSTEH

crossreference.. seite a4 $effa 2963 2988 a5 $effc 2989 2997 a6 $f00b 2994 2996 a9 $f00f 2990 2998 acia $dd00 371 3509 3513 3564 3567 3605 3640 3643 3760 3765 3797 3800 3805 3899 4874 4900 4901 4907 4910 4915 4916 ackhi $fdff 5027 5038 5065 5014 5095 5142 acklo $fdf6 5019 5031 5042 5070 5087 5099 5136 adata $00db 68 829 831 832 853 858 903 1043 1051 1063 1078 1084 1098 1111 addkey $e1be 1192 1896 addpr2 $0002 487 488 488 addpr4 $0004 488 489 489 addpr8 $0008 489 addprc $0001 486 487 487 adreg $ 212 727 730 776 783 996 2308 2323 2328 air $0007 397 4864 4956 alarm $0369 123 4932 4933 altm $eff5 2788 2986 altr $efcb 2790 2955 altrit $eftt 28H 2889 2936 arybnk $0002 536 ascl $ft0e 3152 3154 ascii $ft07 3142 3150 atext $ec6f 995 2551 atkdcy $0005 260 1384 attn $0008 503 512 autoff $ea20 2190 2335 auton $ea23 2188 2341 bl $ee2b 2669 2672 b3 $ee31 2659 2613 bakchr $e587 1150 1519 1550 1604 1620 1624 1734 bakot I $&590 1552 1555 bakot2 $e5a4 1557 1566 bakout $e59f 1554 1563 begsl $efca 2934 2943 2950 bell $e48d 891 1379 2501 bellto $e4b0 1393 1396 bellgo $e4b9 1380 1399 1433 bellmd $039f 146 1240 1379 2264 bellof $e9d8 2195 2264 bellon $e9d6 2194 2259 bitabl $00e2 15 IH5 1460 1461 1469 bitmsk $039c 143 1203 1462 "75 148 I 1903 1912 1934 2147 2154 bitout $e50e I H 7 1462 bitpos $e51e 14H 1458 1468 14 75 bitsav $e50c 146 I IHO bnio $f4ab 3670 3678 bnl5 $f4b5 3615 3683 bn20 $Hba 3679 3688 bn30 $f4c3 3688 3692 bn31 $f4c7 3694 3113 bn32 $Hc9 3695 3707 3710 bn33 $Hca 3696 3705 bn35 $Heb 3693 3699 bn50 $Hd0 3690 3704 3715 boio $fhb 3725 3732 bo20 $f503 3732 3739 bo50 $f51 I 3740 375 I bo60 $f52a 3762 3769 bo80 $f526 3758 3160

crossreference.. seite 2 bo90 $f540 3755 3764 3767 3772 break $f8b3 4164 4291 brkirq $fbe6 4852 4856 bsour $00ab 33 3329 3371 3377 bszei 1 $ed00 1665 2622 bszeib $ed08 2624 2627 buf $0200 81 2756 4607 4608 5298 5306 5313 bufsiz $00al 485 bumpnt $e582 1537 1542 c3po $00aa 32 3324 3331 3333 3369 3373 3375 cas 1 $0315 128 4949 4952 cbinv $0302 83 4856 cdn10 $e319 1122 1135 11H cdnup $e314 1120 2511 cdr $0002 377 3513 3564 3567 3640 3643 3797 3800 3805 3899 4910 4915 4916 cdrts $e321 1123 1126 1152 cdword $e7aa 1870 1888 ce $e4ba 1404 2498 cenv3 $001c 275 ceto $e4bd 1406 1428 cetl $e4cb 1410 "13 cet2 $e4d3 "12 "11 cet3 $e4db "18 1421 cet4 $e4ed 1416 1422 1424 1426 1431 checkf $fff9 5541 ci 1 $f2a3 3370 3374 cia $dcoo 331 3320 3321 3362 3398 3417 3429 3445 3467 3486 3488 3489 4322 4329 4335 4339 4342 4354 4355 4368 4369 4371 4373 4562 4563 4564 4565 4566 4584 4931 eint $eoh 574 631 cinv $0300 82 2675 2677 3011 3013 4822 4828 4853 ck10 $f5b5 3841 3845 ck15 $f5ce 3849 3857 ck20 $f5b2 3842 3852 ck30 $f5d1 3846 3856 3858 3872 ck40 $f5d5 3847 3863 ck5 $f5ab 3835 3839 ck50 $f5e2 3866 3869 ck60 $f5e5 3868 3870 cksume $eca5 26" clall2 $f6b6 4004 4006 cleft $e339 1142 1150 1585 clmwid $0001 491 cloop1 $e048 633 635 cloop2 $eoh 637 639 clpoo $e1bb 843 846 849 clp1 $e1be 848 850 clp2 $e183 804 819 clp7 $elc4 822 851 853 clrio $e232 940 9H clrbi t $e505 934 1228 1294 1307 1458 1759 clrln $e227 691 933 1280 1326 clrprt $e22c 935 1717 clrscr $0093 415 cls 10 $eob6 690 694 clsei $f8bf 3904 4198 4291 4299 clsr $eob3 689 1167 cmds $eed5 2730 2733 2735 278 7 cmpste $fe71 4283 5225 config $00d4 61 643 775 2280 2293 2294 er $000d 474 -,,

crossreference... seite 3,_/ cra $OOOe 302 4584 4592 erb $DOOf 303 3488 4354 4355 4565 4591 creg $0006 396 979 982 4542 critgo $e338 1134 1145 1151 crlf $ef21 2103 2845 2864 3249 crsw $00d0 57 788 816 820 847 1049 3680 crtfo $e26d 990 992 994 crt20 $e26f 995 1000 crtint $e260 684 988 crtlf $e331 1142 2523 crtset $e253 968 978 ctable $ebe4 1107 1109 2494 ctdsp $e306 110, 1107 ctext $e24d 967 2508 ctltbl $eb49 2041 2408 ctlvec $0322 99 II 15 ctr $0003 318 3509 cup $e323 1120 1132 cupfo $e329 1135 1154 cuser $e3 II II 15 2494 2495 2496 2499 2500 2502 2504 2505 2506 2510 2515 2516 2517 2518 2519 2520 2521 2522 2524 2525 d2 $ef4e 2883 2881 dareg $0001 213 728 731 738 777 784 997 2309 2324 2325 2329 dav $0010 504 512 dc $0001 500 511 512 dcdsr $031b 132 3608 4878 4881 ddisk $00bf 45 2683 2770 2980 3226 ddpa $0003 393 3318 3360 4552 4555 ddpb $0004 394 4548 4556 ddpc $0005 395 4544 4560 ddra $0002 290 3321 3362 4563 4590 5003 5018 5024 5030 5051 5092 5098 ddrb $0003 291 4564 4594 delay $00d8 65 641 2060 2082 2084 delwet $e5b0 1427 1434 1585 delins $e5ae 1580 2514 deloop $e5b8 1588 1607 delopf $e5d2 1589 1593 1602 delout $e5c1 1587 1595 1634, 123 dflto $0012 28 3723 3858 4000 4007 dftln $00a I 21 3615 3669 3812 4003 4009 dibf $0080 527 disk $f165 2804 3223 disk10 $f188 3240 3247 disk15 $f18b 3239 3241 disk20 $ff9a 3233 3249 disk25 $ffa4 3253 3260 disk28 $ffb6 3245 3258 3262 disk30 $ffba 3231 3238 3248 3252 326, 3264 dline $e66d 1693 2191 dm $ef72 2902 2941 dmf $ef78 2909 2918 dm2 $ef8a 2913 2915 2917 doblnk $e21a 919 942 1594 1630, 129 doctl $e8c2 2034 2041 dorat $e90l 2058 2082 doscrl $e38b 1214 1218 dosctl $0015 545 dosdsk $0008 543 dosfnl $0012 542 546 546 546

crossreference.. seite doslfn $000e 5H dos1st $0046 546 drsn $ 315 3160 4901 dspl $efa5 2933 2949 dspiz3 $efaz 2921 2932 dsplym $ef8f 2794 2924 dsplyr $ef4c 2192 2818 dspp $ezic 894 924 1605 1623 e6509 $ 9 1899 1963 4241 4249 4700 5280 5535 eah $0091 17 3111 4143 4157 4190 4209 4252 4501 4505 4509 4523 5229 eal $0096 16 3109 4133 4154 418 I 4188 4194 4208 4250 4499 4512 4515 5221 eas $0098 18 3106 4147 4175 4192 4207 4254 5231 eloupl $e55c 1519 1525 1521 eloupz $e561 1518 152 I eloupp $e553 1510 1515 endbye $e511 1520 1523 1528 eoi $0020 505 512 eoist $0040 514 522 eom $0080 478 erexit $f968 4436 4HZ errl $f04 7 2910 291.9 3038 3058 3061 errlpl $f045 3028 3036 erropr $ee50 2692 3038 3125 errorl $f939 4028 4379 errorz $f93c 4022 4385 error3 $f93f 3183 3836 4391 error4 $f942 4139 4202 4397 error5 $f945 3263 3829 3813 4075 H03 5208 error6 $f948 3809 H09 error7 $f94b 3842 HIS error8 $f94e 4123 4267 HZI error9 $f951 3494 4110 4251 HZ7 errorx $f953 3528 4432 escape $e910 592 2160 escgo $e97a 2164 z 174 escrts $e919 2169 2211 escvct $e985 z 176 z 118 2188 escvec $0320 98 1613 etoeol $&694 1716 2204 etol $e691 1717 1722 etosol $e6a9 1128 2203 etout $e6a6 1723 1733 1746 1760 etsioo $e6b8 1731 1734 etstol $e6ac 1729 1135 evect $03f8 152 2818 4489 H91 4502 4524 4535 4536 4835 4836 4838 excomm $fedc 5296 5338 excrts $ff05 5326 exsuio $fee5 5301 5305 exsub $febz 5211 fa $009f 25 2771 30H 3084 3781 3840 3891 3940 3958 4038 4062 4093 4108 4128 4255 4212 4301 4112 4120 4749 fat $033e 109 3913 3914 3939 3987 4039 fchi $0016 266 fclow $00 Hi Z65 findky $e949 1804 1905 1909 1956 2120 2129 findlp $e94d 2131 2135 2137 fistrt Se536 791 1498 1501 1693 fnadr $0090 12 2698 2700 2102 3063 HOl 4103 4105 5250 5252 fnadry $fe9z 3503 4081 4224 5249

cros reference.. seite 5 fndll fndend $e5u $eh I 789 1499 1503 1226 1508 1513 1613 2198 fndfst $e532 1492 2197 fndout $e959 2133 2138 fnlen $009d 23 2719 2161 2904 2916 2942 3064 3225 41118 41184 4121 4211 4221 4221 4265 4699 3501 4060 Fordz $111113 483 frebus $fe08!s006 5JJ4 5148 freqhj $110111 256 1388 1390 freqlo $0111111 255 fun;mp $e921 2052 2106 Funrts $e!l4 7 2JJO 2JJ3 2123 Funvec $03b5 150 645 641 2106 gl $f01b 3004 3001 g2 $fii2f 31111 3021 getlch $e242 828 954 J!S21 1603 1621 getbh $e4f5 JJ22 1439 1498 1512 1526 1563 1721 1132 1752 getbtl $e4f7 1274 1288 13115 1320 1444 1467 J!S92 1681 getbus $fel 1 5JJO 5154 5156 '- getkey $e91e 1369 1995 2006 20Jf 2100 2102 gethn $e4811 1329 1348 1351 1356 1365 getout $e303 1059 Jf02 getpar $fe21 4982 5056 5163 gettab $eil 51 Jf94 1202 2143 getych $e2u 959 1408 1414 1420 gnio $lud 3616 3628 gnl5 $F418 3639 3649 gn20 $f491 3619 3663 gn232 $F454 3629 3635 gneldt $F494 3648 3659 3661 go $1010 2796 3003 grmode $00cc 53 978 981 2031 hdrq $Fffe 5556 hanmi $fffa 5378 5546 hares $Fffc 5551 havasc $e8c5 2035 2038 2040 2046 havkey $e8a9 2014 2028 hexll9 $fj5e 3209 32JJ hexit $FI54 31911 3198 3205 hiadr $0355 112 651 653 3516 3580 3582 3595 3596 4648 4649 4650 hlrll 10 $e357 JJ73 Jf75 homclr $e34a 1166 2513 home $110c5 416 homes $e34f Jf66 JJ72 16509 $0001 10 1020 1023 1032 1961 1973 2613 2713 2831 2911 3015 3049 3052 3652 3654 3656 4174 4176 4181 4243 4251 4276 4290 4297 4612 4618 4619 4620 4643 4102 4818 4819 4831 4861 4899 4962 5177 5219 5241 5249 5251 5253 5257 5317 5336 iacptr $0328 102 5452 ibasin $0310 90 5494 ibsout $0312 9J 5491 ichkin $030a 87 5485 iciout $032a 103 5455 ickout $030c 88 5488 -....~ iclall $0318 94 5518 iclose $0308 86 5482 iclrch $030e 89 5491 icr $000d 301 3417 3445 3489 4562 4585 4587 4922 4931 ifc $0001 508 igetin $0316 93 5515

crossreference... seite 6 iline $e658 1678 2196 ilistn $0330 106 H64 iload $0311 95 5500 incr20 $fe91 5236 5238 52H incsal $fe1f 4287 5235 indk $00d5 62 802 845 1528 3682 insio $e5f0 1615 1617 ins30 $e5f1 1620 1621 1629 ins 50 $e613 1617 1631 insert $e5e4 890 1580 1612 insflg $039a 141 887 2342 insout $e619 1619 1632 1634 insrt $00d3 60 866 884 886 892 908 1081 1088 1231 1631 1633 invh $00b1 39 2618 2894 2961 3010 invl $00b8 40 2616 2895 2959 3012 3161 3164 ioioo $fa43 4568 4570 ioiio $fa4e 4573 4574 4578 iol20 $fa5f 4580 4583 iobase $e03a 590 617 ioinit $f9fb 2638 4521 4541 5410 iopen $0306 85 5H9 ipb $0800 551 4979 5004 5025 5034 5041 5045 5053 5061 5064 5068 5073 5078 5084 5093 5101 5111 5115 5116 5117 5119 5166 5172 ipbsiz $000d 552 ipccmd $ 556 4979 5004 5053 5078 5117 ipcdat $0005 560 5025 5041 5013 5093 ipcgo $fe33 5176 5401 ipcgx $fe41 5184 5188 ipcia $db00 308 4585 4587 4589 4590 4591 4592 4594 4922 4984 4987 4988 4990 4996 5003 5005 5001 5009 5015 5018 5024 5026 5030 5040 5051 5052 5072 5092 5094 5098 5124 5130 5136 5138 5143 5144 5154 5182 5190 5196 ipcin $0003 558 5034 5068 5116 5166 ipcjmp $0001 557 5061 5064 5084 5111 ipcout $0004 559 5045 5101 5115 5119 5172 ipinit $ff19 5268 5218 5337 5343 ipjtab $0810 153 5060 5063 iploop $fe57 5198 5198 ipoint $00ac 34 5270 5303 5344 5346 5348 5356 5363 ipptab $0910 154 5163 iprioo $fcd8 4993 5002 ipr200 $fd09 5023 5035 ipr250 $fd26 5022 5034 ipr300 $fd2f 5038 5046 ipr350 $fd42 5031 5045 iprqst $fcab 4919 4985 5001 5120 5407 ipsioo $fd11 5068 5077 ips200 $fd8b 5069 5018 ips300 $fd99 5087 ips310 $fda0 5090 5102 ips350 $fdbd 5089 5101 ips400 $fdcz 5103 5121 ips500 $fdc3 5079 5106 ips600 $fdcf 5114 ipserv $fd48 49Z4 5050 irqooo $fbf5 4865 4869 irq002 $fbfc 4870 4874 irq004 $fcl5 4879 4887 irq005 $fc27 4893 4896 irqoo 7 $fc3a 4895 4905 _/

crossreference... seite irqoio $fcu U89 4901 irq090 $fc58 4909 4913 4917 irqtoo $fc5b U7f 4920 '-...< irqf10 $fc69 4921 4928 irqzoo $fc1a 4930 4931 irq300 $fc81 4938 49H irq310 $fc95 4947 4952 irq320 $fc9c 4951 4955 irq900 $fc9f U84 4917 4925 4934 4939 4953 4956 isave $03tc 96 5503 isecnd $0324 100 5434 istop $0314 92 5512 italk $0332 101 5461 itape $036a 124 4657 4659 5201 itksa $0326 101 5431 iunlsn $032& 105 5461 iuntlk $032c 104 5458 jcint $&004 574 2640 4530 4533 5413 jescrt $e01f 592 4681 4682 jfunky $e022 594 5404 jiobas $e01c 590 5530 jkey $e013 584 49H 5H6 jloop5 $e00a 518 3683 jlp2 $e001 516 3621 jltlk $f643 3819 3926 jmonon $e000 570 jmptab $fafd 4665 jmvcur $&016 586 jplot $e019 588 5521 jprt $e00d 580 3727 jscror $&010 582 5524 jxf10 $f5f6 3880 3886 jxf15 $f613 3897 3901 jxt20 $f61a 3895 3904 jxt50 $f61d 3890 3892 3894 3900 3905 jxt51 $f61e 3902 3906 jxt60 $f63c 3909 3917 jx310 $f551 3782 3786 jx312 $f57c 3798 3806 jx315 $f580 3793.3808 jx316 $f583 3796 3809 jx320 $f586 3788 3790 3807 3812 3828 jx330 $f58a 379, 3817 jx340 $f598 3820 3825 jx350 $f59b 3822 3826 jx600 $f646 3927 3930 jx750 $f6af 4001 4003 jztoo $f650 3786 3839 3886 3937 3955 kacptr $ffa5 3699 4132 4142 4167 5452 kalloc $ff81 658 5416 kbasin $ffcf 2108 2757 3112 3216 3240 3630 5494 kbsout $ffd2 1809 1823 1825 1828 1843 1845 185, 1853 1872 2847 2859 2865 2861 2884 3155 3243 3255 3299 4225 H4f 5497 kchkin $ffc6 3251 5485 kcint $ff7e 5413 kciout $ffa8 3734 4082 4279 4281 4286 5455 kckout $ffc9 3236 5488 kclall $ffe1 5518 kclose $ffc3 3267 3991 5482 kclrch $ffcc 2645 2664 3264 H33 H53 5491 keword $e7a6 1808 1887

erossre#erenee seite ~-1 lcey $el65 514 1919 Uyd $03ab 149 751 760 761 1644 2068 2090 lceydef $ee2e 672 2531 lceyend $ee67 1479 2146 2551 lceyfun $e&fl 594 1719 keyidx $03911 144 746 151 1803 1841 1811 2114 lceyins $e82e 1932 1955 Uylen $ee24 678 2530 lceypnt $00e2 47 633 741 f80s f806 fb31 2121 2122 lceyseg $0382 136 660 679 1014 lceysho $e7f6 1913 1926 lceysiz $0383 137 rso1 1901 1964 2118 2134 lceyx1 $e87e 1998 2002 Uyxit $e8f5 2041 2055 2072 2095 lceyxt2 $e8f7 13U 2013 2083 2086 2089 lcfunlcy $ff75 5404 lcgbye $fff6 5318 5535 Iegetin $ffe4 3704 5515 lcioini $ff7b 5410 lcipego $ff72 2806 5401 lciperq $ff18 5407 lclistn $ffb1 3864 4063 4094 4273 4302 5464 lclkupl $ff8d 5428 lclkups $#fla 5425 lcload $ffd5 2776 3076 5500 lcmembt $ff9e 5443 lc-tp $ff99 5440 lcnwsys $ff6e 5395 lcopen $ffe0 3230 5479 lcplot $fff0 5521 lcrdtim $ffde 5509 lcreut $ffb7 5470 lcresto $ff81 5422 lcsave $ffd8 3122 5503 lcsenlcy $ff9f 5446 leserar $ffed 5524 leseend $ff93 3869 4070 4275 4306 5434 lcsetmo $ffa2 5449 kshort $elfe 1935 1946 lcstlfs $ffbl 5413 lcstmsg $ff90 5431 lcstnam $ffbd 5476 lcstop $ffe1 2933 3714 3768 4162 4288 5512 lesttim $ffdb 5506 Ietalk $ffb4 3818 4129 5467 Ietleu $ff96 3825 4131 5437 lcudtim $ffea 5521 kunlsn $ffae 4002 4086 4298 4307 5461 lcuntllc $Hab 4005 4197 5458 lcveeto $ffb4 5419 lcvrese $fffif 5398 lcy2ue $e726 1815 1811 kyinlp $eb4e 1911 1919 lcyinolc $e85e 1966 1980 lcyloop $e896 2013 2011 lcymove $e7f9 1921 1943 1952 1954 lcyndx $00116 63 744 750 779 2112 2119 3618 lcysetl $e094 612 675 lcyset2 $e0a I 678 681 lcyxit $ebfi2 1925 1982 ll $f05d 3053 3056 l12 $f0a5 3088 3116

crossreference... seite 9 1H $f0e3 3116 3119 115 $f0f3 3091 3102 3105 3125 12 $f068 3058 3071 3082..._"-../ 120 $f0da 3112 3114 l3 $f06a 3059 3068 15 $f01e 3054 3060 3069 3080 3086 3100 18 $f090 3062 3079 19 $f091 3082 3088 1a $009e 24 3938 3957 4019 4032 4711 1at $0334 108 3911 3912 3929 3937 3989 4033 1d $f04a 2198 2800 3043 1dl0 $f15a 4110 41H 1dl00 $f810 4116 4205 1dll0 $f834 4224 4228 1dll5 $f83f 4214 4218 4222 4229 1dl80 $f813 4199 4206 1d20 $f75d 4109 4113 1d22 $f166 4115 4119 1d25 $f111 4122 4126 1d30 $f791 4138 4142 ld40 $f7ba 4152 4159 4172 4196 1d410 $f849 4234 4236 1d45 $f1c8 4163 4167 1d60 $f1f0 4179 4183 4187 1d64 $f800 4189 4191 4195 1dtbl $ebcb 716 1250 2465 1dtb2 $ebb2 714 1248 2436 1dtnd $0360 117 3907 3908 3910 3926 3949 3981 3994 4025 4031 lf $000a 473 lineoi $e894 2010 2012 1ine1p $e891 2011 2021 1inrts $e66c 1685 1688 lintmp $0398 139 790 800 842 1inz0 $d000 164 2436 2465 linzl $d050 165 2431 2466 1inzl0 $d320 174 2H6 2415 linz II $d310 175 2H1 2416 linzl2 $d3c0 176 2H8 2411 1inzl3 $d4!0 177 2H9 2418 1inzH $d460 178 2450 2419 1inzl5 $d4b0 179 2451 2480 1inzl6 $d500 180 2452 2481 ~ linz 17 $d550 181 2453 2482 1inzl8 $d5a0 182 2454 2483 linzl9 $d5f0 183 2455 2484 1inz2 $d0a0 166 2438 2467 linz20 $d640 184 2456 2485 linz21 $d690 185 2451 2486 linz22 $d6e0 186 2458 2481 linz23 $d130 187 2459 2488 linz24 $d180 188 2460 2489 1inz3 $d0f0 167 2439 2468 linz4 $dl40 168 2HO 2469 1inz5 $dl90 169 2HI 2410 linz6 $dle0 170 2H2 2471 1inz1 $d230 171 2H3 2412 linz8 $d280 172 24H 2413 1inz9 $d2d0 173 2H5 2H4 listl $f236 3310 3316 3390 list2 $f268 3325 3331 lis tky $e6ff I 791 179 7 1istlp $e701 1798 1856

crossreference.. seite 10 llcupla $f618 3968 5428 llcups2 $f664 3950 3953 lkups3 $f66d 3955 3910 lkups4 $f676 3928 3951 3962 lkupsa $f660 3948 5425 loding $f840 4145 4232 logscr $039e 145 1310 1698 1701 1704 I 183 logsw $e6fl 1779 1181 lookup $f63e 3181 3834 3923 3969 4020 loop2 $e206 903 1102 loop3 $el2c 774 811 loop3a $el36 178 780 loop4 $el29 773 787 loop5 $e179 578 812 lop2 $e216 909 911 lop5 $e18b 807 818 827 lop52 $ela3 835 838 lop53 $ela7 837 838 840 loph $el9d 833 835 lowadr $0352 111 4614 4617 lpl $e I 19 760 764 lp2 $e0fe 576 7U 785 lp3 $e I 14 745 758 lp70 $el70 801 804 lp15 $el72 803 805 lp80 $el74 796 798 806 1stehr $0399 140 904 1055 I 172 1StklO $e762 1840 1845 lstk20 $e73e 1828 1882 lstk30 $&772 1852 1880 lstk40 $e79c 18 71 1878 lstlcat $e787 1838 1866 lstkcr $e181 1834 1862 lstlclp $e78d 1870 1874 1877 lstksc $e784 1836 1864 lstnr $0020 516 lstp $00ce 55 603 704 799 3612 lstx $00cd 54 2057 2072 2109 lsxp $OOcf 56 601 70 I 195 1125 1263 1261 1296 1298 1687 1710 1755 3614 luking $f81b 4126 4213 ~ m51cdr $0377 130 3510 m51ctr $0376 129 3504 3508 membot $fb8d H92 5U3 memsiz $035b 114 3590 3593 H77 H78 H79 H84 H85 H86 memstr $0358 113 4613 4616 H93 H94 H95 4800 4801 4802 memtop $fb78 4653 H76 5HO modkey $OOeO 73 1990 2008 monoff $ee09 570 2645 monon $eeoo 2638 movc 18 $e63d 1654 1657 1660 movc20 $e653 1664 1669 movc30 $&654 1659 1662 1667 1670 movchr $e62e 898 1618 1653 movcur $e0da 586 605 723 905 movl 10 $e3cl 1253 1257 movlin $e3b4 1248 1278 1324 msl $flc3 3215 3296 msg $f221 3296 3302 H37 msgio $f22e 3291 3303 msgflg $0361 118 2656 2696 2769 3290 4213 4313 H35 H31 mxbanlc $0010 533

crossreference... seite II.,_/ nbasin $f49c 3669 4613 nbsout $Hee 3722 4674 nchkin $f549 378 I 4670 nciout $f297 3368 4686 nckout $f5a3 3834 4671 ncloio $f685 3981 3992 ncl020 $f688 3982 3988 ncl030 $f69b 3985 3989 nclall $f61f 3919 4677 nclose $f5ed 3878 4669 nclrch $f6a6 3983 3999 4672 ndac $0040 506 511 ndx $00dl 58 763 765 778 1342 1642 2061 2088 2092 2111 3611 4454 newky4 $.SI I 1937 1939 ngetin $f43d 3615 4676 nirq $fbd6 4844 5556 njtio $e2cl 1051 1062 njt20 $e2c3 1063 1093 njt30 $e2c9 1064 1066 nlistn $f234 3315 4689 nload $f746 4102 4678 nminv $0304 84 4691 nocass $fe5d 5206 nodefn $e777 1802 1854 nodev $0080 523 nopen $f6bf 4015 4668 norkey $00el H 1991 2028 normtb $n29 2029 2348 noroom $eoaa 650 659 682 nosec $e737 1820 1825 notfun $e8d6 2049 2056 nowhop $e391 1217 122 I nrbyte $f30a 3435 4685 nrfd $0080 501 511 nrmscr $ea05 2201 2315 nrmset $ea08 2212 2321 nsave $f84c 4241 4679 nsecnd $f274 3346 4683 nstop $f96b 4449 4675 ntalk $f230 3309 4690 ntcn $e2cf 1054 1072 ntcnl $e2ec 1077 1079 1086 ntcnio $e2f8 1089 1092 ntcn20 $e2fc 1073 1015 1082 1085 1087 109 I 1098 ntext $ec81 2576 ntksa $f280 3355 4684 nulxit $e8f3 1999 2023 2063 2061 20 7 I numlev $00ia 484 numtmp $0003 495 nunlsn $f2af 3389 4688 nuntlk $f2ab 3383 4687 nvs $ele5 882 884 nvs I $e lf9 888 894 nvs2 $e203 896 898 nvsa Se leb 885 88 7 nxln $e37a 112 I 1210 1231 1538 nxln I $e38f 1212 1220 nxtl $e394 1226 2507 nxt3 $e1de 881 1061 metehr $e574 849 1143 1534 1602 1606 1622 166, nxtd $e0cl 689 699 1175

crossreference. seite 12 opooo $f&c4 4015 4019 opioo $f&ce 4021 4025 opffo $f6d8 4027 4031 opl50 $f&fb 4043 4046 opl52 $f702 4047 4051 opl75 $f705 4040 4042 4045 4052 op35 $f724 4072 4078 op40 $f12a 4081 4085 op45 $f735 4079 4086 op50 $f738 4059 4061 4087 openi $f107 40H 4058 4127 4270 openib $f118 4070 4097 opn020 $f386 3501 3507 opn030 $f395 3502 3508 opn045 $f3cl 3517 3522 3521 opn050 $f3c6 3527 3531 opn232 $f381 3499 4048 oscl $ 249 1384 1386 1388 1392 1398 OIC2 $0001 250 osc3 $000e 251 1390 oscctl $0004 259 1392 1398 outfn $f82e 4221 4317 outqst $ef'22 2692 285.8 pa $ 390 1361 1994 2003 2020 2014 3323 3326 3328 3334 3336 3331 3339 3347 3349 3351 3358 3399 3401 3402 3408 34 II 3415 3425 3421 3435 3438 3H2 3453 3455 3460 3462 3410 3412 3473 3416 3418 4550 4553 4557 pagres $e291 616 749 927 961 1030 1258 1832 1975 1980 pagsav $03a0 147 1021 1031 pagset $e27d 925 959 1006 1252 pagst2 $e2b2 661 141 1013 1830 1926 1976 pagsub $e286 1008 1019 panic $fcaa 4661 4976 patall $f995 4479 4518 pb $0001 391 1368 1993 2005 2019 2016 H65 H71 4546 4554 4596 4597 4946 4955 5148 5150 5157 5159 5178 5180 pc $0002 392 989 2100 2101 2211 H61 H67 4559 4567 4568 4571 4576 pch $0018 35 2670 2126 2890 3011 pcl $00af 36 2824 2891 pi $00ff 492 pkybuf $00c0 46 648 649 662 665 614 2129 2130 4529 pkyend $0380 135 652 654 1915 1918 plot $e025 588 599 pnt $00c8 50 715 717 725 734 926 960 1254 pntr soocb 52 602 6ff 703 126 806 8H 924 937 941 946 954 1050 1180 1189 ff96 1230 1404 1406 1432 1493 1517 1535 1543 1550 1563 1571 1596 2229 3611 potx $0019 212 poty soota 213 pra $ 288 3320 3398 3429 3461 5005 5026 5040 5052 5072 5094 prb $0001 289 4589 4984 4987 4981 4990 4996 5007 5009 5015 5124 5130 5136 5138 5143 5144 5154 5112 5190 5196 preamb $e711 1808 1811 prend $fca5 3022 4967 prendn $f'ca2 4866 4961 prt Se299 580 773 1039 prtio $e2a0 1041 1043 ptext $ec93 2595 ptrsiz $0003 494 pulsec $0003 258

crossreference... seite 13 pulsef $0002 251 pulst I $9691 159 4186 putag $ff2a 5281 5363 ~--- ; putaxs $ff24 5284 5294 5309 5354 putbit $e501 1452 1683 putbtl $e503 1276 1322 1453 putp $eeff 2823 2956 3006 pxl $fa8b 4605 4610 qtsw $00d2 59 793 836 868 870 910 1080 1090 1239 qtswc $elcd 840 864 1066 qtswi $eldb 867 875 qtswl $eldd 865 816 roo $ 217 rot $0001 218 r02 $0002 219 r03 $0003 220 r04 $0004 221 r05 $0005 222 r06 $0006 223 rot $0001 224 r08 $0008 225 r09 $0009 226 rio $OOOa 227 rll $000b 228 rl2 $000c 229 rl3 $000d 230 rl4 $000e 231 rl5 $000f 232 rl6 $0010 233 rl7 $00 II 234 ramtas $fa88 4531 4603 random $001b 214 rbyl $f314 3439 3449 rbylt $f319 3441 3450 rby2 $f31a 3440 3442 3447 rby4 $f33f 3444 3460 rby5 $f350 3464 3467 rby7 $f35e 3413 3475 rd300 $fe62 4277 5213 rddb $00c1 511 rdoa $fl23 2926 3034 3174 rdoa2 $fl2f 3175 3179 rdoae $f040 2924 2955 2957 2986 3005 3034 3094 3107 rdob $fl30 2989 3027 3 I 74 3171 3184 3189 rdob4 $fl53 3187 3197 3200 rdobe $f03a 2968 2971 3021 3083 3089 3103 rdoc $fl5f 3003 3053 3059 3019 3085 3099 3186 3196 3216 3232 3253 rdoxit $f03f 3029 3035 rdplt $e035 599 610 rdtim $f8e6 4322 4343 5509 readss $fb5d 4122 4136 readst $fb4a 4719 5470 regk $ef31 2812 2883 relsag $0371 127 4105 4146 relsah $0310 126 4103 4150 4156 relsal $036f 125 4102 4149 4153 ren $0004 502 511 512 req256 $f3fc 3523 3571 resnce $0017 261 restor $fba2 2639 4532 4808 5422 revscr $e9f6 2205 2300

crossreference.. seite " ribuf $00a6 30 3520 3524 3525 3526 3653 3655 4654 4898 4902 ridbe $031d 134 3518 3638 4890 4896 ridbs $031c 133 3519 3631 3657 4892 roomio $e08d 663 665 rptcnt $00d1 64 2085 2081 2094 rsstat $037a 13 I 3601 36H 3646 3649 3651 3708 3711 3153 3162 4123 4757 4882 4883 4905 4906 rst232 $f42e 3499 3603 3803 3853 rstbo $f50b 3143 3771 rstorl $f510 37H 3746 runlop $e623 1643 1646 runrts $e62d 1639 1648 runtb $eba9 1643 2429 rvs $0391 138 631 881 1160 1238 rvsf $e3h 1159 2512 so $ee77 2681 2718 4680 sl $ee83 2130 2146 s2 $ee98 213 I 2142 s3 $eea I 2152 2159 s4 $eeb2 2153 2155 2164 s6 $eed4 2166 2711 2182 sa sooao 26 3515 3658 3157 3794 3819 3850 3865 3942 4034 4036 4058 4064 4096 4120 4130 4264 4214 4299 4303 4713 sah $0094 4280 4640 4817 52" 5228 5231 sal $0093 " 13 4180 4182 4218 4285 4336 43H 4359 4361 4364 4367 4312 4624 4621 4628 4632 4633 4631 4816 4823 4821 5216 5226 5235 5243 sas $0095 15 5218 5230 5239 5240 sat $0348 110 3915 3916 3941 3952 4037 saving $f8d9 4271 4313 savkey $e912 2065 2010 2090 savpos $e5a5 157 I 1586 1612 1716 1728 1740 I 75 I savx $0366 122 2132 3069 3117 3636 3662 3980 3986 scatn $f271 3341 3363 3861 scbot $00dd 70 692 12 II 1268 1290 1317 1509 1656 2236 2622 scdio $e3d9 1269 1279 scd20 $e3f0 1212 1280 scd30 $e3d1 1264 1266 1268 sclf $00de 71 102 794 933 1229 1210 1316 "92 1524 1539 1553 1120 1730 2253 scold $f9aa H90 H98 scrio $e42d 1303 1315 1325 scr40 $eh4 1318 1326 scr60 $e452 1336 1339 1341 scr10 $e45a 1342 1360 scr15 $ehe 1343 1350 scr80 $e45f 1331 1346 scr90 $e46a 135 I 1353 scr95 $e471 1354 1359 scrdis $039b 142 1213 1466 1658 I 774 2621 scrdwn $e3cd 1263 1668 1678 1758 scrorg $e03f 582 624 scrset $e0cf 690 714 1269 1315 scrswo $e6e3 1765 2199 scrswl $e6e5 I 77 I 2200 scrt $00df 72 943 1186 1188 1255 1516 1536 1562 1564 1588 1653 2237 3681 scruoo $e3f8 1287 1291 scruio $e42c 1309 1312 scrul5 $e408 1289 1295 1311 I 702 scru20 $e410 129 7 1299 '~

crossreference... seite 15 ~ ------ scru30 $e4tl 1301 1303 scrup $e3f6 1218 1286 1743 sctop $00dc 69 699 1132 1215 1286 1292 1299 1304 1555 1694 1697 1105 1708 1756 2252 2623 sddn $e6cb 1751 2210 sddn2 $e6d6 1753 1756 sdr $000c 300 sedeal $00c6 '49 1910 1911 1927 1930 1936 1938 1939 1940 1942 1968 1970 1974 sedul $00c4 48 1249 1251 1253 1906 1907 1929 1931 1946 1948 1949 1950 1951 1953 195 7 1958 1977 sedtl $00d9 66 733 737 1572 1595 1616 1628 1898 1955 1959 sedt2 $00da 67 1300 1302 1574 1597 1614 1626 1745 1902 1922 1941 1947 sedtj $03b1 151 1799 1813 1854 51111165 $0008 326 se111u $0004 325 sequen $e655 1058 1673 setbit $e512 1281 1453 1466 setbot $fb98 4192 4800 setbts $e9c2 2236 2245 setcrl $e9dc 2208 2270 seterz $e9e6 2193 2219 setcr3 $e9ec 2206 2286 setcr4 $e9ef 2192 2292 setcr5 $e9f3 2281 2294 sethtb $e9bb 2189 2224 sethtt $e9b9 2207 2218 setlfs $fb43 3228 4711 5473 setlns $f288 3358 3392 setmsg $fb5a 4731 5431 setnam $fb34 4699 5476 setr $ef08 2832 2891 2962 setscr $eal2 2310 2325 settim $f90e 4350 5506 settmo $fb14 4770 5449 settop $fb83 4776 4784 settps $e9dl 2231 2252 setung $e9e8 2212 2280 shftgr $eae9 2039 2388 shfttb $ea89 2036 2368 sid $daoo 245 1242 1382 1384 1386 1388 1390 1392 1398 sizioo $fab5 4624 4639 4641 size $fad7 4622 4630 4635 4643 sizlop $faab 4619 4642 slock $0040 526 sloopo $f9b7 4504 4513 4520 sloopl $f9c9 4515 4519 sloop2 $f9d5 4506 4521 sloop3 $f9d8 4517 4523 sp $00b4 37 2680 3001 space $eflf 2852 2893 2909 sperr $0010 524 spmsg $f21c 2685 3290 4216 4220 4236 4316 sreset $e9c7 682 1174 2243 srq $0002 509 srsn $0001 376 3605 3765 4874 4900 4907 stl $ee69 2708 2710 2712 stack $0100 80 3185 3195 3199 4850 5286 5290 5335 stah $009a 20 3098 4144 4158 4244 5213 stal $ 0099 19 2119 3096 4134 4155 4242 5215 start $f997 4484 5551

crossreference. seite 16 stas $009b 21 3093 4148 4246 5217 status $009c 22 3224 JZH 3256 3692 3827 3871 3924. 4071 4135 4160 4161 4169 4195 4136 4741 4742 4764 4107 statxt $fb6b 4126 4756 stkend $01fb 490 stlrey $0019 31 4449 4473 stop2 $f978 4451 4456 storss $fb70 4751 4163 storst $fb64 4719 4748 stprun $e61c 1639 2497 strbnk $0004 537 strsiz $0004 493 stuio $e0c7 102 1679 1711 stupt $e0cd 604 709 827 1137 1221 1503 1515 1560 1599 1660 1119 susrel $0006 261 1386 suup $e6bd 1740 2209 svio $f86a 4257 4261 Sl/100 $f8d6 4262 4312 Sl/110 $f8d4 4300 4308 svll5 $f8d5 4309 4314 sv20 $f86d 4256 4260 sv25 $f81e 4266 427fl 51130 $f89f 4283 4289 SI/50 $f8ba 4284 4297 swarm $f9f8 4493 4526 4536 sysbnlr $0001 532 533 t I $0363 119 3751 3773 t2 $0364 120 3752 37H t2t2 $fll3 2925 2932 3160 t2t21 $fll5 3161 3168 t6509 $OObe 3050 3072 3092 tab $03al 148 " 1204 2153 tabl $e35e 1186 1195 tab2 $e361 1187 1193 tabend $fb31 4691 5546 tabit $e35a 1180 2503 tabtos $e370 1181 1202 tahi $0005 293. talo $0004 292 tape I $0013 29 4655 tbhi $0001 295 3486 tblo $0006 294 tblx $00ca 51 600 610 700 109 197 805 841 1133 1136 1153 1210 1216 1220 1265 1271 1295 1439 1452 1500 1502 1508 1511 1514 1556 1558 1573 1590 1598 1625 1655 1696 1706 1718 1157 2230 3613 tby2 $f2d4 3403 3404 3408 3409 tby3 $f2de 3412 3421 tby3t $f2e3 3414 3422 tby4 $f2e4 3413 3415 3419 tby6 $f2fc 3416 3425 tby7 $f304 3407 3428 tbyte $f2b9 3330 3341 3346 3355 3372 3397 tddb $003f 512 te $0002 501 511 512 timb $ee21 2664 4666 time $eel6 2655 timero $f36f 3412 3439 3485 timout $035& 115 3420 3448 4770 tkatn $f283 3356 3821 tlkr $0040 515,,..;-~~

crossreference... seite 17 " tmpl $00b9 2734 2736 2737 2823 2825 2833 2835 2910 2912 2914 2929 2931 2937 2938 2946 2948 2958 2960 2992 2993 2995 3041 3048 3014 3075 3.095 3097 3108 3110 '-.-- 3163 3166 3176 3118 tmp2 $00bb 42 2928 2930 2945 2941 tmpc $00bd 43 2658 2666 2684 2764 2 778 2902 2911 2988 2996 toa010 $f3dl 3539 3541 toa020 $f3db 3"537 3542 3544 3546 toasci $f3c7 3536 3759 tocoio $f3e6 3554 3556 toc020 $f3f0 3552 3551 3559 3561 tocbm $f3dc 3551 3660 todio $0008 296 4322 4342 4373 4566 todhr $000b 299 4329 4368 todmin $000a 298 4339 4369 todsec $0009 291 4335 4371 toin $0002 521 toout $0001 520 topoio $f41a 3583 3590 topbad $f416 3585 3591 3594 topxit $f426 3592 3595 toqm $e3a2 1083 1236 2202 toqmx $e3b3 1241 1243 tranr $f73a 4016 4093 tri 1 $deoo 403 979 982 3318 3323 3326 3328 3334 3336 3337 3339 3341 3349 3351 3358 3360 3399 3401 3402 3408 3411 3415 3425 3427 3435 3438 3442 3453 3455 3460 3462 3410 3412 3413 3416 3418 4542 4544 4546 4548 4550 4552 4554 4567 4568 4571 4576 4596 4597 4864 4946 4955 4956 5148 5150 5151 5159 5178 5180 tri2 $df00 435 989 1367 1368 1993 1994 2003 2005 2019 2020 2014 2016 2100 2101 2211 4461 4465 4467 44 71 4553 4555 4556 4557 4559 4560 tttop $f400 3513 5416 txcrt $e251 683 973 txjmp $fe9d 5257 5395 txjmpl $fea6 5261 5263 txtbnk $0001 534 txtprt $e143 1830 1849 udexit $f991 4463 4412 udst $fb5f 3406 3424 3452 3466 4185 4741 udtim $f919 4461 4945 5521 udttt $f98c 4468 4470 ulstn $003f 518 unitd $efeb 2810 2977 unlsl $f2bl 3384 3390 usrcmd $031e 97 2713 usrpok $0002 II 1969 1912 4245 4253 4605 4704 usrset $e9f9 2213 2306 utlkr $005f 517 varbnk $0003 535 vdc $d800 210 721 728 730 731 738 776 777 783 784 996 991 2308 2309 2323 2324 2325 2328 2329 vect20 $fbb5 4822 4825 vect50 $fbbd 4820 4826 vect60 $fbbf 4827 4830 vector $fba9 4816 5419 verck $035f 116 4104 "78 4233 view $efel 2802 2968 volume $0018 268 1242 1382 vreset $fbca 2649 4835 5398 waithi $fdee 5016 5028 5039 5071 5090 51jo 5132

crossreference... seite IB waitlo $fde6 5020 5032 5043 5066 5015 5096 5124 5126 window $e9bc 2229 2509 wroa $f0f6 2892 2896 2939 3130 wrob $f0fb 2911 3131 3131 / xeit $eef9 2808 2815 xi6509 $00b5 38 2614 3014 xon232 $f3fl 3564 3854 xsav $0365 121 3635 3661 3919 3984 xtape $fe5a 3691 3142 3808 3851 3903 4051 4205 4312 5201 yirq $fbe9 4665 4861

Als Ergänzung zu diesem Buch ist eine Vergleichslisteder bekannten Zero-Page-, RAM-, ROM-Adressen von CBM 8032-610/710-6201720 sowie das Operating-System der Serie 610/710 mit deutscher Tastatur und ein komplettes Buch "Assemblerlisting CBM 620 und 720" mit deutscher Tatstatur lieferbar. Außerdem liefern wir in Kürze das "Reassembler - Assemblersystem" für die Serien CBM 8000, 600 und 700, mit dem dieses Buch erstellt wurde. Es beinhaltet: Conditional-Assembler, Scroll-Editor, Crossreferenz, Generator, Reassembler, Label-Changer. Lieferung durch den Herausgeber oder über Ihren Fachhändler HARd +SofT R. S. Microcomputer GmbH Gagernstraße 4 8580 Bayreuth Telefon (09 21) 6 88 77 C/J ~AR. +S o T