koala.asm
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Ergebnis (Bild aus Pac-Land)
;############################################################################### ;# Programm: Grafik im Koala-Format anzeigen ;# Dateiname: koala.asm ;# ;# Assembler: ACME ;# Assemblierung: acme -f cbm -o koala.prg koala.asm ;# ;# Start mit: RUN ;# ;# Quelltext: * Kleinschreibung (bis auf Kommentare) ;# * nur Leerzeichen, keine Tabulatoren ;# * Abstand: jeweils 20 Zeichen (Label --> Befehl --> Kommentar) ;# * Zeilenlänge max. 80 Zeichen ;# ;# Beschreibung: Einfacher Koala-Viewer ;# ;############################################################################### ; ----- @Basic-Start@ ----- *=$0801 ; Basic-Startzeile "10 SYS2061" erzeugen !word + ; Zeiger auf nächste Basic-Zeile !word 10 ; Basic Zeilennummer !byte $9e ; Basic-Token für SYS-Befehl !text "2061" ; Startadresse des Programms: 2061/$080D !byte 0 ; Basic-Zeilenende + !word 0 ; Basic-Programmende ; ----- @Hauptprogramm@ ----- lda #0 sta $d020 ; Rahmenfarbe schwarz lda hintergrundfarbe sta $d021 ; Hintergrundfarbe ; Bitmapmodus einschalten lda #%00111011 ; Bit 7: 0= Bit8 von $D012 = 0 sta $d011 ; Bit 6: 0= "Extended Color Modus" aus ; Bit 5: 1= Bitmapmodus ein ; Bit 4: 1= Bild ein ; Bit 3: 1= 25 Zeilen ; Bit 2-0: 011= Y-Pixeloffset (Standard) ; Multicolormodus einschalten lda #%00011000 ; Bit 5-7: unbenutzt sta $d016 ; Bit 4: 1 = Multicolormodus an ; Bit 3: 1 = 40 Spalten ; Bit 0-2: X-Pixeloffset = 0 ; Bitmap = $2000, Bildschirm = $0400 lda #%00011000 ; Bit 7-4: Offset Bildschirmspeicher sta $d018 ; in $0400-Schritten ; Bit 3: 1= Bitmap-Offset $2000 ; Bit 2-0: unbenutzt im Bitmapmodus ; ----- @Kopierschleife@ ----- ldx #0 - lda screen,x ; Daten in Bildschirmspeicher kopieren sta $0400,x lda screen+$0100,x sta $0500,x lda screen+$0200,x sta $0600,x lda screen+$02e8,x sta $06e8,x lda farbram,x ; Daten in Farbram kopieren sta $d800,x lda farbram+$0100,x sta $d900,x lda farbram+$0200,x sta $da00,x lda farbram+$02e8,x sta $dae8,x inx bne - jmp * ; Endlosschleife ; ----- @Grafikdaten einbinden@ ----- *=$2000 ; externes Koalabild einbinden ; Dateigröße= 10003 Bytes (mit Ladeadr.) ; !bin Name, Byteanzahl, Startoffset bitmap: !bin "bild.koa",8000,2 screen: !bin "bild.koa",1000,2+8000 farbram: !bin "bild.koa",1000,2+9000 hintergrundfarbe: !bin "bild.koa",1 ,2+10000