hallo, habe dieses programm zum bild einlesen, funktioniert auch.
nun möchte ich damit die koalabilder einladen, bei dien bildern muss ja immer eine relative adresse angeben un die anzahl der bytes, damit man auf die verschiedenen daten zugreift.
wie kann ich das hier realisieren.
wo kann ich im asm-diskloader die adressen angeben, damit die richtig an die adresse kommen?
mfg peter
!to "multibild.prg",cbm
* =$c000 ;startadresse
screenmem = $fb
blockbasic = $04
getin = $ffe4
datenlo =$f7
datenhi =$f8
speicherlo =$f9
speicherhi =$fa
start
jsr scrloesche
;waehlt den speicher ab $2000 als bitmap
lda $d018
ora #%00001000
sta $d018
; schaltet den grafikmodus ein (hi-res, also 320*200*2)
lda $d011
ora #%00100000
sta $d011
;schaltet auf Multicolor (160*200*16)
lda $d016
ora #%00010000
sta $d016
lda #>bild
sta datenhi
lda #<bild
sta datenlo
lda bildlo
sta speicherlo
lda bildhi
sta speicherhi
jsr diskette
lda #>video
sta datenhi
lda #<video
sta datenlo
lda videolo
sta speicherlo
lda videohi
sta speicherhi
jsr diskette
lda #>multi
sta datenhi
lda #<multi
sta datenlo
lda multilo
sta speicherlo
lda multihi
sta speicherhi
jsr diskette
beenden
jsr getin
beq beenden
lda $d011 ; hires-modus aus
and #%11011111
sta $d011
lda $d016 ;Multicolor (160*200*16) aus
and #%11101111
sta $d016
lda $d018 ;speicher ab $2000 als bitmap aus
and #%11110111
sta $d018
jsr scrloesche
rts
;ende
diskette
LDA #$00
JSR $FF90 ; enable/disable KERNAL messages
LDA fnnumb
LDX drive
LDY fn_sec
JSR $FFBA ; Kernal : Set Logical File Parameters
LDA fnchars
LDX datenlo
LDY datenhi
JSR $FFBD ; Kernal : Set Filename
LDA #$00 ; 0 = load
LDX speicherlo
LDY speicherhi
JSR $FFD5 ; Load (to address)
rts
scrloesche
lda #$00
sta screenmem
lda #$04
sta screenmem+1
ldx #blockbasic
ldy #$00
lda #32
schleife
sta (screenmem), y
iny
bne schleife
inc screenmem+1
dex
bne schleife
rts
drive !byte $0a
fnchars !byte $08
fnnumb !byte $0F
fn_sec !byte $00
bild !tx "bild.prg"
bildlo !byte $00
bildhi !byte $20
video !tx "vide.prg"
videolo !byte $00
videohi !byte $04
multi !tx "colo.prg"
multilo !byte $00
multihi !byte $d8