Crossassembler fr den Commodore 64 Computer ------------------------------------------------ Version 1.0 Copyright (c) 1995 Thomas Terhaar/The Dreams/JPT Dieses Programm ist SHAREWARE !! Lesen Sie dazu bitte die Informationen am Ende dieses Files ! In dieser Version ist die Quelltextgr”áe leider auf 64KB beschr„nkt, (das liegt an dem Programmiertool,welches den Editor zur Verfgung stellt) ich habe vor,diesen Miástand in kommenden Versionen zu beheben. Zur Not kann man ja fr gr”áere Projekte mehrere Files mit dem .fi-Befehl (siehe unten) linken. Informationen zum Verbinden von PC und C64 finden Sie im Abschnitt 'Das Verbindungskabel' in diesem File. Der Crossassembler versteht alle Befehle und Adressierungsarten des C64. Zus„tzlich gibt es noch einige Pseudo-Befehle,die nachfolgend erl„utert werden : Pseudo-Befehle ------------------- ANMERKUNG : Die Pseudobefehle beginnen immer mit dem Zeichen "." ! .ba gibt die Startadresse des Programms an und muá als erster Befehl im Quelltext stehen. Die Kleinste m”gliche Startadresse ist 2. ACHTUNG: Die Empfangsroutine des C64 verschiebt sich nach dem Start in den Bereich von $0100 bis $0163,Sie sollten also keine Programme in diesen Bereich assemblieren,da die Routine sich sonst selbst berschreibt !!! Beispiel : .ba $c000 .eq weist dem angegebenen Symbol den angegebenen Wert zu. Beispiel : CLS: .eq $e544 .by legt eine Bytefolge im Speicher ab. Beispiel : TEXT: .by "Hier steht Text",0 .wo wie .by ,jedoch werden die Operanden Wortweise im Speicher abgelegt (lo-,high-byte). ACHTUNG: Text (in "" eingeschlossen) wird IMMER Byteweise abgelegt !! .db reserviert soviele bytes,wie der wert nach .db angibt. Die Bytes werden mit dem Wert 0 initialisiert. Beispiel : .db 10 ;reserviert 10 Bytes .dw wie db ,jedoch werden w”rter reserviert. .fi Fhrt die Assemblierung im angegebenen File fort. Beispiel : .fi next.src Operanden ------------ Als Operand eines Befehls muá nicht immer nur ein Wert oder eine Adresse angegeben werden,es kann auch im Quelltext gerechnet werden. Verfgbare Rechenoperatoren sind : "+" "-" "/" "*" "\" Zus„tzlich sind noch die Symbole "<" und ">" bekannt,um z.B. die Adresse einer Routine in einen Vektor einzutragen: lda #irq ;Adresse High-Byte sta irqvector+1 Unklar drfte wohl nur der Operator "\" sein ; er ergibt den Modulus (den Rest) einer Division. Gltige Operationen sind z.B.: lda adresse-adresse2 lda #320/8 Zu beachten ist,das immer von links nach rechts gerechnet wird,die Operation LDA 3+5*7 ergibt (3+5)*7=56 und nicht 3+(5*7)=38 ,was mathematisch exakt w„re. Eine weitere Besonderheit hat der BIT-Befehl aufzuweisen : Steht er ohne Opertor im Quelltext,wird der Code $2c generiert,womit sich dann folgende Operationen bewerkstelligen lassen : cmp wert bcc kleiner ldx #0 bit ;entspricht ".by $2c" kleiner: ldx #1 ;wird nach BIT bersprungen rts Dies ist natrlich ein schlechtes Beispiel,demonstriert jedoch die Verwendung dieses Befehls. Achso,Kommentare im Quelltext werden brigens,wie gezeigt,mit einem Semikolon eingeleitet,aber das versteht sich schon fast von allein. Zahlenformate ---------------- Der Crossassembler versteht folgende Formate von Zahlen,die in Befehlen verwendet werden k”nnen : Bin„r: lda #%01010101 Hexadezimal: lda #$ff Dezimal: lda #44 ASCII: lda #'A Dies ist die bliche Schreibweise und wird in allen mir bekannten Assemblern fr den C64 auf dieselbe Art behandelt. Label --------- Label oder Sprungmarken stehen immer am Anfang einer Zeile und werden mit einem Doppelpunkt abgeschlossen. Zwischen Groá- und Kleinschreibung wird unterschieden,der Label "Skip:" ist also ein anderer als der Label "skip:" ! Die Maximale L„nge eines Labels ist 40 Zeichen,was v”llig ausreichen sollte. (Vermeiden Sie unbedingt l„ngere Label,sonst k”nnte es zu unvorhersehbaren Fehlern kommen !) Das Verbindungskabel ----------------------- Userport Parallel-Port 64'er-Pin PC-Pin ----------- ---------- A 25 B 9 C 15 D 13 E 12 F 10 H 2 J 3 K 4 L 5 M 11 Das Kabel sollte nicht l„nger als 3 Meter sein,sonst kann es zu šbertragungsproblemen kommen. Das Kabel ist kompatibel zu dem Verbindungskabel des 64'er Emulators 'PC64' von Wolfgang Lorenz.Besitzer eines solchen Kabels brauchen sich also kein neues mehr zu basteln. Zur Zeit findet noch keine šberprfung auf eine fehlerfreie šbertragung der Daten statt (dies wird sich in kommenden Versionen „ndern),sollte also ein bertragenes Programm einmal nicht laufen wollen,so versuchen Sie es mit einer erneuten šbertragung ! (Bei mir sind bis heute noch keine šbertragungsfehler aufgetreten) HINWEIS: Als Standart-Port ist in allen Programmen LPT2 voreingestellt. Sollten bei der šbertragung von Daten Fehler auftreten, so prfen Sie zun„chst,ob Sie den richtigen Port eingestellt haben ! (Bei CROSS64 im Menpunkt OPTIONS/LPT-PORT,in den anderen Programmen wird der Port ber Befehlszeilenparameter eingestellt) Die 64'er Programme: ----------------------- SENDFILE schickt einzelne Files vom C64 zum PC,die dort mit dem Programm GET64 empfangen werden. Nachdem SENDFILE geladen wurde (mit 8,1 !) kann ein File mit dem Befehl SYS 2060"FILENAME",8 vom Diskettenlaufwerk bertragen werden. Die Empfangsroutine des Crossassemblers ---------------------------------------- Das File "CROSS64" auf dem C64 laden und mit "RUN" starten,wenn der Crossassembler Sie dazu auffordert. In dieser Version wird der empfangene Code im Speicher des C64 abgelegt, zum abspeichern mssen Sie sich (leider) noch eines Monitors bedienen. In kommenden Versionen wird es jedoch m”glich sein,direkt auf Diskette zu speichern. Um die Programme fr den C64 zu installieren,geben Sie bitte folgendes Programm ein : 10 PA=56576:PB=PA+1:RB=PA+3:F=PA+13 20 POKE RB,15:POKE PA,147:A=PEEK(F) 30 OPEN 1,8,1,"@:SENDFILE,P,W":FOR I=1 TO 182 40 GOSUB 70:NEXT:CLOSE 1 50 OPEN 1,8,1,"@:CROSS64,P,W":FOR I=1 TO 167 60 GOSUB 70:NEXT:CLOSE 1:END 70 WAIT F,16:H=PEEK(PB):POKE PA,151 80 WAIT F,16:B=(H AND 240)+(PEEK(PB)/16) 90 PRINT#1,CHR$(B);:POKE PA,147:RETURN Dann starten Sie auf dem PC das Programm 'GO64'. Sie werden nun zun„chst nach dem LPT-Port gefragt,mit dem der C64 verbunden ist (1 oder 2).Starten Sie das Empfangsprogramm,welches Sie eben abgetippt haben,wenn das Programm Sie dazu auffordert. Die Programme werden nun zum C64 bertragen und auf Diskette geschrieben. Beachten Sie bei der Eingabe des Programms bitte das Semikolon in Zeile 90 ! Zusatzprogramme : ------------------ GET64 : Damit werden in Verbindung mit dem C64-Programm "SENDFILE" Files vom C64 zum PC bertragen. Nachdem mit "SENDFILE" ein File geladen wurde,werden Sie dazu aufgefordert,den PC zu starten.Starten Sie nun auf dem PC das Programm "GET64" und das File wird auf Festplatte gespeichert. Hilfe zu den Kommandozeilenparamtern erhalten Sie,wenn Sie am DOS-Prompt "GET64" eingeben. BLASCONV : Diese Utility konvertiert Quelltexte des C64-Assemblers "ASSBLASTER+TURBO" in das Format des Crossassemblers. Um einen Quelltext zu konvertieren mssen Sie ihn zun„chst mit "GET64" auf Ihrem PC gespeichert haben. Starten Sie nun "BLASCONV" mit dem Namen des Original- Quelltextes und dem Namen des konvertierten Quelltextes als Kommandozeilenparamter. Auch hier erhalten Sie Hilfe,wenn Sie am DOS-Prompt "BLASCONV" eingeben. (Eine Konvertierung war notwendig,da die Quelltexte in einem speziellen Format abgespeichert werden.Andere Assembler arbeiten mit ASCII-Quelltexten,„hnlich,wie der Crossassembler. Diese Quelltexte k”nnen nach der šbertragung direkt mit dem Crossassembler bearbeitet werden.) HINWEIS: Der Konverter konvertiert nicht alle Pseudo-Befehle des Assblasters ! Zur Zeit werden die Pseudo-Befehle BA,LA,BY,WO und TX umgesetzt. Andere Befehle k”nnten u.U. fehlerhafte Zeichen im Quelltext produzieren,haben auf andere Befehle jedoch keinen Einfluá. Wenn Sie irgendwelche Fragen,Kritik oder Anregungen haben,die den Crossassembler betreffen,schreiben Sie bitte an folgende Adresse : Thomas Terhaar Alter Postweg 15 46244 Bottrop-Kirchhellen BTX:020456531-0002 Compuserve:100542,2043 Schreiben Sie bitte auch,wenn Sie Fehler in der Software gefunden haben sollten,damit diese in folgenden Versionen beseitigt werden k”nnen !! SHAREWARE-INFORMATION ------------------------- Dieses Programm ist SHAREWARE,jedoch in keiner Weise eingeschr„nkt. Sie drfen es frei kopieren und in aller Ruhe austesten. Sollten Sie dieses Programm l„nger als 30 Tage benutzen,mssen Sie sich registrieren lassen.Schicken Sie dazu bitte 20DM an die oben genannte Adresse. Sie bekommen dann Informationen ber kommende Versionen und Updates der Software,die Sie dann zum Vorzugspreis von nur 5DM erwerben k”nnen. WICHTIG: ---------- Fr Sch„den jegwelcher Art an Mensch oder Maschine,die durch die Benutzung der Software/des Kabels enstehen sollten,kann keine Haftung bernommen werden !!!!! Die Benutzung der Software/des Kabels erfolgt auf eigene Gefahr !!!!