paule32
Neues Mitglied
Hallo,
ich habe folgenden Code, der in der Zeile: 12 einen Fehler (beim linken ergibt)
move.l $dff000, a0
dort findet der Linker keine Adresse oder Programmlabel.
Was kann ich tun, um mit den GNU m68k-amigaos- toolchain eine hunk-datei zu erstellen, die dann auf eine floppy kopiert
und nach dem einlegen in das Diskettenlaufwerk gebootet (gestartet) wird ?
beim erstellen gehe ich wie folgt vor:
2. gnu toolchain, um das .o file zu erzeugen
3. Versuch, ein hunk image zu erstellen - schlägt aber fehl
ich habe folgenden Code, der in der Zeile: 12 einen Fehler (beim linken ergibt)
move.l $dff000, a0
dort findet der Linker keine Adresse oder Programmlabel.
Was kann ich tun, um mit den GNU m68k-amigaos- toolchain eine hunk-datei zu erstellen, die dann auf eine floppy kopiert
und nach dem einlegen in das Diskettenlaufwerk gebootet (gestartet) wird ?
beim erstellen gehe ich wie folgt vor:
- sed 's/;.*//' bootloader.asm > bootloader.s
- m68k-amigaos-as.exe -o bootloader.o bootloader.s
- m68k-amigaos-ld.exe -o bootloader.hunk -Ttext 0x0 -nostdlib bootloader.o
2. gnu toolchain, um das .o file zu erzeugen
3. Versuch, ein hunk image zu erstellen - schlägt aber fehl
Code:
start:
move.l #0, d0 ; Setze Bildschirmkoordinaten (x=0, y=0)
move.w #0x100, d1 ; Setze die Farbe (0x100 = Weiß)
jsr DrawText ; Rufe die Funktion auf
move.l #1, d0 ; Setze Bildschirmkoordinaten (x=1, y=0)
jsr DrawText ; Rufe die Funktion auf
rts
DrawText:
move.l $dff000, a0 ; Zeiger auf die Custom-Chips-Register dies ist Zeile:12 !!!
move.l #0x1800, d2 ; Setze die Zeichenbreite (0x1800 = 24 Pixel)
move.b #0x04, d3 ; Setze den Zeichensatz auf 8x8
DrawLoop:
move.b (a0), d4 ; Lade die Custom-Chips-Register
bset #8, d4 ; Setze Bit 8 (Vertikale Blanking-Periode)
move.b d4, (a0) ; Speichere die Custom-Chips-Register
move.w (a0), d5 ; Lade die Custom-Chips-Register
bclr #8, d5 ; Lösche Bit 8 (Vertikale Blanking-Periode)
move.w d5, (a0) ; Speichere die Custom-Chips-Register
move.b (a0), d4 ; Lade die Custom-Chips-Register
btst #6, d4 ; Überprüfe Bit 6 (Bildschirm wird aktualisiert)
bne DrawLoop ; Wenn Bildschirm noch aktualisiert wird, weiter
move.b #0x20, (a0) ; Setze den Cursor auf Leerzeichen
move.w (a0), d5 ; Lade die Custom-Chips-Register
move.w d5, (a0) ; Speichere die Custom-Chips-Register
add.l d2, d0 ; Erhöhe die X-Koordinate
move.b d0, d4 ; Lade die X-Koordinate
cmp.b #40, d4 ; Vergleiche mit Bildschirmbreite (40 Zeichen)
blt DrawLoop ; Wenn kleiner, weiter
rts
buffer: ds.b 256 ; Puffer für den Text