Blockgrafik/Lo-Hires
<< zurück zu Blockgrafik
Das Konvertierungsprogramm "Lo-Hires" erstellt aus einer Blockgrafik im aktuellen Video-RAM eine Hires-Grafik.
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Lo-Hires ist im Prinzip die Routine des Programms "LOW-->HIRES" von M. Klingenmann aus dem 64'er SH11 (bzw. SH93), aber um einen Farbteil ergänzt. Wie die Originalversion wird "Lo-Hires" mit SYS 52992
($CF00) aktiviert. Wenn die Blockgrafik angezeigt wird, drückt man die Taste <F7> und startet die Konvertierung. Das fertige Bild steht dann im Hires-Format ab $4000 im Speicher und kann sofort mit einem Grafikprogramm, wie z.B. Hi-Eddi plus, weiterbearbeitet werden.
Soll <F7> durch eine andere Taste ersetzt werden, so ist der neue Tastaturcode in $CF10 abzulegen, z. B. für das Pfund-Zeichen: POKE 53008,48
.
ACME Listing[Bearbeiten | Quelltext bearbeiten]
;Lo-Hires konvertiert eine Blockgrafik vom aktuellen Bildschirm ;in eine Hires-Grafik (Bitmap $4000, Farbe $6000). ;Original aus 64'er SH11 S.60 von M. Klingenmann (1986), ;Farbteil von P.Hagemann (1989). ;Starten mit SYS 52992 ($CF00), ausführen mit <F7>. !to "lo-hires.prg", cbm * = $cf00 sei lda #$0d sta $028f ;Zeiger für Tastaturdekodierung lda #$cf sta $0290 ;auf cf0d cli rts ;-------- lda $cb ;momentan gedrückte Taste cmp #$03 ;Tastencode für F7 beq a16 jmp $eb48 ;-------- a16 lda $dd00 ;CIA 2 Kontrollregister eor #$ff and #$03 ;Bit 0-3 = Speicherbank tay a1e dey bmi a2f ldx #$07 lda tab,x ;Tabelle anpassen clc adc #$40 sta tab,x dex bne a1e a2f lda #$00 sta $90ff sta $fb lda $0288 sta $fc lda #$ff sta $24 lda #$3f sta $25 lda $d018 and #$0e clc ror tay lda tab,y sta $fe lda #$ff sta $fd sei lda #$33 sta $01 ldy #$00 a5b lda ($fb),y clc asl rol $90ff asl rol $90ff asl rol $90ff clc adc $fd sta $22 lda $90ff adc $fe sta $23 ldy #$08 a78 lda ($22),y sta ($24),y dey bne a78 lda #$00 sta $90ff inc $fb bne a90 inc $fc lda $fc cmp #$08 beq aa0 lda $24 clc adc #$08 a90 sta $24 lda $25 adc #$00 sta $25 jmp a5b ;-------- ;neuer Teil für Farbe aa0 lda #$37 sta $01 lda #$d8 sta $fc lda #$60 ;color $6000 sta $fe sty $fb sty $fd ldx #$04 lda $d021 and #$0f sta $b0 ab9 lda ($fb),y asl asl asl asl ora $b0 sta ($fd),y iny bne ab9 dex beq ad0 inc $fc inc $fe jmp ab9 ;-------- ad0 cli rts ;-------- ;Tabelle der High-Bytes für den Zeichensatz-Vektor tab !by $ff, $07, $cf, $d7, $1f, $27, $2f, $37
SMON Disassembler-Listing des Originals[Bearbeiten | Quelltext bearbeiten]
LOW-->HIRES:
,cf00 78 sei ,cf01 a9 0d lda #$0d ,cf03 8d 8f 02 sta $028f ,cf06 a9 cf lda #$cf ,cf08 8d 90 02 sta $0290 ,cf0b 58 cli ,cf0c 60 rts ---------------------------- ,cf0d a5 cb lda $cb ,cf0f c9 03 cmp #$03 ,cf11 f0 03 beq $cf16 ,cf13 4c 48 eb jmp $eb48 ---------------------------- ,cf16 ad 00 dd lda $dd00 ,cf19 49 ff eor #$ff ,cf1b 29 03 and #$03 ,cf1d a8 tay ,cf1e 88 dey ,cf1f 30 0e bmi $cf2f ,cf21 a2 07 ldx #$07 ,cf23 bd ca cf lda $cfca,x ,cf26 18 clc ,cf27 69 40 adc #$40 ,cf29 9d ca cf sta $cfca,x ,cf2c ca dex ,cf2d d0 ef bne $cf1e ,cf2f a9 00 lda #$00 ,cf31 8d ff 90 sta $90ff ,cf34 85 fb sta $fb ,cf36 ad 88 02 lda $0288 ,cf39 85 fc sta $fc ,cf3b a9 ff lda #$ff ,cf3d 85 24 sta $24 ,cf3f a9 3f lda #$3f ,cf41 85 25 sta $25 ,cf43 ad 18 d0 lda $d018 ,cf46 29 0e and #$0e ,cf48 18 clc ,cf49 6a ror a ,cf4a a8 tay ,cf4b b9 ca cf lda $cfca,y ,cf4e 85 fe sta $fe ,cf50 a9 ff lda #$ff ,cf52 85 fd sta $fd ,cf54 78 sei ,cf55 a9 33 lda #$33 ,cf57 85 01 sta $01 ,cf59 a0 00 ldy #$00 ,cf5b b1 fb lda ($fb),y ,cf5d 18 clc ,cf5e 0a asl a ,cf5f 2e ff 90 rol $90ff ,cf62 0a asl a ,cf63 2e ff 90 rol $90ff ,cf66 0a asl a ,cf67 2e ff 90 rol $90ff ,cf6a 18 clc ,cf6b 65 fd adc $fd ,cf6d 85 22 sta $22 ,cf6f ad ff 90 lda $90ff ,cf72 65 fe adc $fe ,cf74 85 23 sta $23 ,cf76 a0 08 ldy #$08 ,cf78 b1 22 lda ($22),y ,cf7a 91 24 sta ($24),y ,cf7c 88 dey ,cf7d d0 f9 bne $cf78 ,cf7f a9 00 lda #$00 ,cf81 8d ff 90 sta $90ff ,cf84 e6 fb inc $fb ,cf86 d0 08 bne $cf90 ,cf88 e6 fc inc $fc ,cf8a a5 fc lda $fc ,cf8c c9 08 cmp #$08 ,cf8e f0 10 beq $cfa0 ,cf90 a5 24 lda $24 ,cf92 18 clc ,cf93 69 08 adc #$08 ,cf95 85 24 sta $24 ,cf97 a5 25 lda $25 ,cf99 69 00 adc #$00 ,cf9b 85 25 sta $25 ,cf9d 4c 5b cf jmp $cf5b ---------------------------- ,cfa0 a9 37 lda #$37 ,cfa2 85 01 sta $01 ,cfa4 a9 40 lda #$40 ,cfa6 85 fc sta $fc ,cfa8 a9 00 lda #$00 ,cfaa 85 fb sta $fb ,cfac 85 fd sta $fd ,cfae a9 20 lda #$20 ,cfb0 85 fe sta $fe ,cfb2 b1 fb lda ($fb),y ,cfb4 91 fd sta ($fd),y ,cfb6 e6 fb inc $fb ,cfb8 e6 fd inc $fd ,cfba d0 f6 bne $cfb2 ,cfbc e6 fc inc $fc ,cfbe e6 fe inc $fe ,cfc0 a5 fc lda $fc ,cfc2 c9 60 cmp #$60 ,cfc4 d0 ec bne $cfb2 ,cfc6 58 cli ,cfc7 4c 48 eb jmp $eb48 ---------------------------- :cfca ff 07 cf d7 1f 27 2f 37
Weblinks[Bearbeiten | Quelltext bearbeiten]
- 64'er Sonderheft 11 auf archive.org mit dem Artikel "Von LowRes nach HiRes"