Schlagwort-Archive: 6502

Chessprogramming – 6502

Kaum aus dem Urlaub zurück und schon wieder beim Thema….

http://chessprogramming.wikispaces.com/6502

Kannte die Seite  bisher noch nicht und muss mir das bei Gelegenheit noch genauer anschauen. Fest steht, die Seite enthält:

  • Ein Blockdiagram des 6502
  • Die Pin- Belegung des Chips
  • Eine Liste der bekanntesten Schachprogramme für 8- Bit Computer
  • Hinweise auf einschlägige Literatur

Viel Spass!


Atari Macro Assembler, Beispiel Sitzung

Es sind  zwei Disketten Laufwerke im Einsatz.

Der Source befindet sich auf Laufwerk 2 (D2:Debug)

Der Assembler, der Editor und das sog. „SYSTEXT“- File liegen auf D1:
(Das Systext File enthält eine Sammlung von Symbol Deffinitionen – Equates-. Kann beliebig erweitert werden und lässt sich Quelltext- übergreifend verwenden)

Der Objektcode wird ab $A800 lauffähig sein.

Vorteil des Aufwandes: Der Source wird nicht im RAM assembliert, d.h. in diesem Fall direkt nach $A800 geschrieben, sondern als Objektfile auf Disk abgelegt! Prima Sache!

Weiterführendes, hier im Blog:

Wer mehr zum Thema Assembler auf dem guten alten Atari 8-Bit erfahren möchte, der gibt im Suchfeld einfach „Assembler“ oder „6502“ ein. Das war’s.

Programmier Sachen…. (6502, C und so…..)

Vom Wohnzimmer nach draußen in den Garten, nur mal kurz meine Buchhaltung erledigen, dann den Rechner zuklappen und in die Sonne liegen. Tja, bin  glatt abgedriftet im WWW. Ergebnis: Einige interessante Links :

Viel Spass beim ausprobieren 🙂


Diassemblieren….

…und wie man das auf dem Atari 8- Bit richtig macht. Einfach? Da braucht man doch nicht drüber nachdenken, Startadresse angeben und los geht’s? Was aber wenn ich die Startadresse gar nicht kenne?

Das kann zum Beispiel dann passieren, wenn ich weiss, dass ein bestimmtes Programm irgendwo auf einer Diskette liegt, ich aber nicht weiss wo nun der ausführbare Code und wo nur Datenmüll gespeichert wurde.

Tja, also doch, ein paar Gedanken sind angebracht. Folgendes Beispiel zeigt wo die Probleme anfangen:

Die Byte Folge

A9 A9 8D D0 D4

Übersetz, beginnend ab Byte 1 ergibt:

LDA #$A9
STA $D0D4

Übersetzt aber ab Byte 2:

LDA #$8D
???
BNE  *…..

Wir wissen:

Der Boot Sektor einer Atari Diskette beginnt immer mit 6 Bytes, die dem Betriebssystem sagen, was zu tun ist  (näheres dazu hier im Blog). Das könnte z.B. so ausschauen : 00 03 05 06 06 07. Auf die „07“ folgt ausführbarer Code. Dem Diassembler sollte man also mitteilen, dass der ausführbare Code ab Byte 7 beginnt, sonst macht das Ergebnis u.U. keine Sinn.


Ein Assembler in 6502 Maschinensprache…..

….das alles und noch viel mehr bietet 6502.org.

Die Seite erreicht man über diesen Artikel hier im Blog oder direkt:

6502.org

Wer eine Sortierroutine, Zahlenkonverter oder fertige Programme im 6502 Assembler Source sucht, der findet da was er braucht. Ich schau‘ ab und an mal vorbei und bin immer wieder überrascht. Sehr viele interessante Sachen die Lust auf’s selber machen, ……machen 🙂

Mein Heutiger Favorit: Der kommentierte Source für einen 6502 Assembler. Das PDF Dokument findet sich auf der o.g. Seite unter:

http://6502.org/source/ (dort nach „Monitors, Assemblers, and Interpreters“ suchen und dem Link 2KSA folgen)

Weitere Highlight’s? Ja, aber bitte. Gebt doch einfach einmal „Schach“ als Suchbegriff hier im Blog ein. Es lohnt sich……

Viel Spass.


Atari Macro Assembler, erste Schritte….

Im folgenden eine kleine Zusammenfassung meiner Erfahrungen mit dem Programmpaket. Eine sehr gute Beschreibung findet sich unter http://www.mixinc.net/atari/amac.htm. weitere Informationen zu gängigen Assemblern für die guten alten Atari 8-Bit gibt es hier im Blog. Wer den Suchtext „Assembler“ eingibt, der findet sicher mehr.

Los geht’s

Editor

Atari Macro Assembler Editor
Start Bildschirm

Herausragendes Merkmal – vermutlich einzigartig in der „Atari Welt“ – ist  das der Editor größere Datenmengen verkraftet als das RAM eigentlich zulassen würde! Mehr dazu, wenn ich es getestet habe.

läßt sich wie jeder andere bildschirmorientierte Editor – z.B. der ATMASII Editor – bedienen.

Befehle erteilt man über Kommandos im Klartext im Kommandozeilen Modus (START Taste drücken).

Source- Text zeichnet sich dadurch aus, dass er vor dem jew. Mnemonic/ Label oder der Direktive jew. immer ein Lehrzeichen enthält.

Komandozeile:

Kommando im Klartext eingeben und die START- Taste zum ausführen drücken.

Wichtige Kommandos sind:

EXIT
speichert den aktuellen Textbuffer und verlässt den Editor.

SB /Suchtext/
„Suchtext“ suchen.

Assembler

Atari Macro Assembler

Filename eingeben und der Assembler startet. Gibt’s Fehler, dann zurück in’s DOS, Editor aufrufen und Fehler suchen.

Nach dem Filenamen lassen sich zahlreiche Optionen angeben. Die wichtigsten sind:

Assembler Optionen:

S=SYSTEXT
Bespiel:   D1:TEST.SRC S=D2:SYSTEXT S=D2:MYEQU
Assembliert TEST.SRC und benutzt die „EQUATES“ in der auf D2 gespeicherten SYSTEXT Datei. Es können mehrere SYSTEXT Files mit beliebigen Namen verwendet werden (max. 40 Stück). Vorteil: Klar, wenn die Equates in einer eigenen Datei liegen,dann können die auch für mehr als ein Projekte verwendet werden.

O=$A800
Legt die Startadresse des durch den AMAC generierten Objekt- Files fest. Damit wird erreicht, dass das File von DOS aus mit dem „L“ Befehl (Menü gesteuerte DOS’es) geladen werden kann (Start i.d.R. automatisch).

Syntax

Etwas unkonventionell. Wer den „Assembler Editor“ bzw. „den Mac/ 65 kennt“, der wird umdenken müssen! Einstiegshilfe:

High und Low Byte:
LDA #BILD:L

lädt normalerweise BILD/256 in den Accu. Im AMAC schaut das so aus:
LDA #LOW BILD
LDA #HIGH BILD

Operatoren fügt man so ein:
LDA #LOW [BILD+30]
LDA #HIGH [BILD+30]

 

 

 

 


Cross Assembler….

Habe leider noch keinen für meinen Mac gefunden. Ich wünsche mir einen für den 6502……

Eine vielversprechende Seite ist: http://www.npsnet.com/danf/cbm/cross-development.html#Assemblers

Speziell für die Atari Gemeinde gibt es den „MAD“ Assembler („MADS“), ein Produkt aus Polen: http://mads.atari8.info/
Ursprünglich wohl für PC geschrieben.