Diese Folge der „Computer Chronicles“ zeigt überraschendes. Ein Computer, Baujahr ’56, mit Bildschirm. Der Überraschungseffekt: Ein einfaches Labyrinth- Spielchen.
Diese Folge der „Computer Chronicles“ zeigt überraschendes. Ein Computer, Baujahr ’56, mit Bildschirm. Der Überraschungseffekt: Ein einfaches Labyrinth- Spielchen.
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:
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 🙂
…Objekt Files werden oft auch als „Binär Files“ bezeichnet und lassen sich über die Dos Shell (Das DUP.SYS) über den Menübefehl „L“ laden und ausführen.
Haben wir uns schon einmal gefragt, woher die Laderoutine weiss, wo im Speicherbereich das Programm abgelegt und dann gestartet werden soll? Ja?
Jedes Objekt File beginnt so:
$FF, $FF Immer!
Start Adresse Low + High Byte
End Adresse Low + High Byte
Es folgen n (Endadresse – Startadresse +1) Datenbytes.
Das war’s
Wer sich für den Boot Sektor interessiert, der findet hier im Blog mehr.
Quelle: Atari Profibuch (ABBUC e.V. )
Viel Spass!
…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.